网易首页 > 网易号 > 正文 申请入驻

Linux 下的 Docker 入门教程 | Linux 中国

0
分享至

导读:面向初学者的 Docker 基本命令指南。

本文字数:12283,阅读时长大约: 16分钟

面向初学者的 Docker 基本命令指南。

这篇详细的 Docker 教程覆盖了核心的Docker 命令,比如,如何创建新容器、运行容器、删除容器等。另外,这篇教程也解释了如何从已有的容器构建你自己的 Docker 镜像,如何移除容器和镜像。言归正传,现在开始 Docker 的基本用法。

Docker 安装步骤

大多数现代 Linux 操作系统都可以安装 Docker。如果还没安装过 Docker,请参考下面的步骤:

◈ 在 AlmaLinux、CentOS、Rocky Linux 上 ostechnix.com

◈ 如何在 Ubuntu 上 ostechnix.com

什么是 Docker 镜像和 Docker 容器?

在开始 Docker 之前,我先说明一下 Docker 镜像和 Docker 容器是什么。

Docker 镜像是一个描述容器如何运行的的文件,Docker 容器是 Docker 镜像在运行或被终止时的一个阶段。

容器和主机上的其他文件是隔离的。

当我们运行一个 Docker 容器的时候,它会使用一个被隔离出来的文件系统,这个文件系统是由一个 Docker 镜像提供的。Docker 镜像包含了运行应用程序所需要的一切东西 - 所有的依赖、配置、脚本、二进制文件等等。

镜像也包含容器所需要的其他配置项,比如说环境变量、默认运行的命令,以及其他元数据。

Linux 下的 Docker 入门

下面的所有步骤都已在 Ubuntu 22.04、20.04 以及 18.04 LTS 服务器版本中测试通过。后续小节中提供的步骤对于所有 Linux 平台都是通用的。比如,在基于 RHEL 的系统中(比如 AlmaLinux)可以运行相同的命令。

1、搜索 Docker 镜像

我们可以从叫做 hub.docker.com 的 Docker 官方库获得镜像,或者我们也可以制作自己的镜像。

有些人可能不清楚,Docker hub 是一个线上的中心化仓库,Docker 用户们在上面构建、测试、然后保存他们的 Docker 镜像。Docker hub 有数以万计的 Docker 镜像,而且这个数字还在每天增长。

你可以从命令行通过 ``docker search` 命令搜索任意 Docker 镜像。

比如要搜索基于AlpineLinux 的 Docker 镜像,运行:

  1. $ sudo docker search alpine

输出结果:

Search Docker Images

搜索基于Ubuntu的镜像,运行:

  1. $ sudo docker search ubuntu

你还可以搜索其他任意的应用,比如Nginx,像下面这样:

  1. $ sudo docker search nginx

Docker hub 有各种各样的镜像。你能在 Docker hub 上找到各种已构建好的 Docker 镜像,比如说操作系统、应用,或者多个应用的合体(比如 LAMP 栈)。

如果你找的东西不在上面,你还可以构建一个镜像,然后通过 Docker hub 向其他人开放,或者只是自己用。

2、下载 Docker 镜像

从终端运行下面的命令可以下载 Ubuntu OS 的 Docker 镜像:

  1. $ sudo docker pull ubuntu

上面的这个命令会从 Docker hub 下载最新的 Ubuntu 镜像。

输出结果:

  1. Using default tag: latest

  2. latest: Pulling from library/ubuntu

  3. 405f018f9d1d: Pull complete

  4. Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac

  5. Status: Downloaded newer image for ubuntu:latest

  6. docker.io/library/ubuntu:latest

你也可以用下面的命令下载指定版本的 Ubuntu 镜像:

  1. $ sudo docker pull ubuntu:20.04

Docker 允许我们下载任何镜像,并且在那个镜像上创建容器,这些操作与主机的操作系统无关。

比如要下载 Alpine 系统的镜像,运行:

  1. $ sudo docker pull alpine

Download Docker Images

3、列出 Docker 镜像

所有已下载的 Docker 镜像都保存在/var/lib/docker路径下。

要查看所有已下载的 Docker 镜像,运行:

  1. $ sudo docker images

输出结果:

  1. REPOSITORY TAG IMAGE ID CREATED SIZE

  2. ubuntu latest 27941809078c 3 weeks ago 77.8MB

  3. ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB

  4. alpine latest e66264b98777 5 weeks ago 5.52MB

List Docker Images

从上面可以看出来,我已经下载了三个 Docker 镜像 - Ubuntu latest、Ubuntu 20.04 和 Alpine Linux。

现在,我们看一下接下来如何从下载的镜像启动或者运行容器。

4、运行 Docker 容器

有两种方法我们可以启动一个容器 - 使用 Docker 镜像的标签(TAG) 或者 镜像 ID(Image ID)。

标签指的是一个特定的镜像快照,镜像 ID(Image ID) 是那个镜像对应的唯一识别码。

可以查看下面这个截图:

Docker Image Tag and ID

从上面的解脱可以看到,标签是latest20.04

27941809078c是 Ubuntu latest 的 Docker 镜像的镜像 ID,

20fffa419e3a是 Ubuntu 20.04 的 Docker 镜像的镜像 ID,

◈ 而e66264b98777是 Alpine latest 的 Docker 镜像的镜像 ID。

4.1、使用标签运行容器

下载选择好的 Docker 镜像后,运行下面的命令来启动 Docker 容器,并且通过它的标签进行连接。

  1. $ sudo docker run -t -i ubuntu:latest /bin/bash

或者,

  1. $ sudo docker run -it ubuntu:latest /bin/bash

这里,

-t:在 Ubuntu 容器内分配一个伪终端。

-i:通过从容器获取一个标准输入(STDIN),允许我们创建一个可交互的连接。

ubuntu:latest:标签为latest的 Ubuntu Docker 镜像。

/bin/bash:新容器的 BASH shell。这个是可选项。如果你不加 shell 的话,会分配默认的 shell 给容器。

启动容器后,会自动进入容器的 shell(命令行):

Run Containers Using Tag

基于最新 Ubuntu 镜像的容器现在已经启动了。所有的新容器都会被赋予一个名字和唯一的 ID。从上面的输出可以看到,那个 Ubuntu 容器的 ID 是2f2a5b826762。一会儿我们会看到从哪找到容器的名字。

现在就可以在容器里面工作了。当你完成容器内的工作后,你可以回到主机操作系统的终端(在我这个例子中,操作系统是 Ubuntu 22.04 LTS)而不需要关掉容器(客户机)。

4.2、从运行中的容器中脱离

使用CTRL+P然后CTRL+Q就可以从运行中的容器脱离(不需要关闭)。

现在,你就回到了你原来的主机的终端窗口。请注意,容器还在后台运行中,我们并没有关掉它。

4.3、使用镜像 ID 运行容器

另一种启动容器并且连接进去的方式是通过使用镜像 ID,像下面这样:

  1. $ sudo docker run -it 20fffa419e3a /bin/bash

这里,

20fffa419e3a- 镜像 ID

CTRL+P然后CTRL+Q可以从当前容器中脱离回到主机系统的终端。我们只是从容器中脱离,但是没有让它停止。容器仍然在后台运行中。

4.4. 在脱离模式中运行容器

在前面的小结中,我们启动了一个容器并且立刻连接了进去。然后当容器中的工作结束后,我们从容器中脱离了出来。

你也可以在脱离模式(不需要自动连接进去)中启动容器。

在后台运行一个容器,输入命令:

  1. $ sudo docker run -it -d alpine:latest

输出结果:

  1. d74f2ceb5f3ad2dbddb0b26e372adb14efff91e75e7763418dbd12d1d227129d

上面输出结果的前 12 字符代表的是容器的 ID。

通过docker ps命令,你可以验证容器是否在运行:

  1. $ sudo docker ps

  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  3. d74f2ceb5f3a alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds zen_pascal

Run Containers In Background

从上面个的输出结果中可以看到,我们创建了一个 Alpine 容器,但是还没有连接进去。

如果你想连接进去,很简单,运行:

  1. $ sudo docker attach d74f2ceb5f3a

5、查看运行中的容器

查看运行中的容器,运行下面的命令:

  1. $ sudo docker ps

输出结果:

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  2. f7e04eed577e 20fffa419e3a "/bin/bash" 6 minutes ago Up 6 minutes brave_mclean

  3. 2f2a5b826762 ubuntu:latest "/bin/bash" 18 minutes ago Up 18 minutes hungry_leavitt

View Running Containers

这里,

f7e04eed577e是由镜像2f2a5b826762创建的 Ubuntu 容器的 ID。并且,brave_mclean是这个容器的名字。

2f2a5b826762是由镜像 “ubuntu:latest” 创建的 Ubuntu 容器的 ID。并且,hungry_leavitt是这个容器的名字。

当一个新容器被创建后,会赋给它一个唯一的 ID 和名字,这样我们就能通过它的 ID 和名字来连接它。

注意:请注意容器 ID 和 Docker 镜像 ID 是不同的

列出所有可用的(运行或者停止)容器,运行:

  1. $ sudo docker ps -a

6、从运行中的容器脱离或连接

首先,通过docker ps命令找到容器的 ID。

  1. $ sudo docker ps

然后,运行docker attach命令连接到运行中的容器。

  1. $ sudo docker attach

比如像下面这样,我要连接到 ID 为f7e04eed577e的容器:

  1. $ sudo docker attach f7e04eed577e

你也可以通过使用它的名字连接到一个容器。

  1. $ sudo docker attach brave_mclean

现在你就登录到这个容器了。

想要从容器脱离,只要按CTRL+P然后CTRL+Q

7、启动、重启、暂停和终止容器

你可以使用容器的名字或 ID 来启动,重启,暂停或者终止一个 Docker 容器。

首先,通过docker ps -a命令找到容器的名字或 ID。

Find Container ID And Name

现在,通过使用docker start命令,加上名字或 ID,你可以启动一个容器,像下面这样:

  1. $ sudo docker start modest_cray

  1. $ sudo docker start 10615254bb45

用空格隔开,就可以启动多个容器,像下面这样:

  1. $ sudo docker start 24b5ee8c3d3a 56faac6d20ad d74f2ceb5f3a

优雅的重启一个运行中的容器,运行:

  1. $ sudo docker start 10615254bb45

暂停一个运行中的容器:

  1. $ sudo docker pause 10615254bb45

把暂停的容器恢复过来:

  1. $ sudo docker unpause 10615254bb45

直到其它容器都停止前,阻塞一个容器:

  1. $ sudo docker wait 10615254bb45

我们可以很容易地通过使用它的名字或 ID 来终止一个容器。如果你已经在容器的 shell 里了,只需要运行下面的命令就可以非常简单的终止:

  1. # exit

你也可以使用下面的命令从 Docker 的主机系统中终止(关闭容器)容器:

  1. $ sudo docker stop 10615254bb45

用空格隔开,你可以退出多个容器,像下面这样。

  1. $ sudo docker stop 35b5ee8c3d3a 10615254bb45

在退出容器之后,通过列出所有容器的命令来确保它确实被终止了:

  1. $ sudo docker ps

8、强行关闭 Docker 容器

docker stop命令可以非常优雅的关掉运行中的容器。有时候,你可能卡在一个没有响应的容器,或者你想强制关掉容器。

通过给一个运行中的容器发送SIGKILL来强行关闭容器,运行:

  1. $ sudo docker kill 10615254bb45

9、在关闭容器后自动删除他们

也许你想测试一个容器,然后当你完成在容器中的工作就把它删掉。如果是这样,通过使用--rm标签在关闭后自动删掉容器:

  1. $ sudo docker run -it --rm debian:latest

当你从容器中退出,它会自动被删掉。

Automatically Delete Containers

从上面的结果可以看到,我先创建了一个新的 Debian 容器。当我退出这个容器的时候,它就被自动删掉了。docker ps -a命令的输出结果显示,Debian 容器现在不存在。

10、给容器命名

如果你再看一下之前命令的输出结果,当你启动一个容器的时候,每个容器都被赋予了一个随机的名字。如果你不命名你的容器,Docker 会自动替你给他们命名。

现在看一下下面的例子:

  1. $ sudo docker run -it -d alpine:latest

  2. 2af79e97a825c91bf374b4862b9e7c22fc22acd1598005e8bea3439805ec335d

  1. $ sudo docker run -it -d alpine:latest

  2. 80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a

  1. $ sudo docker ps

  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  3. 80b53b7e661d alpine:latest "/bin/sh" 3 seconds ago Up 2 seconds bold_margulis

  4. 2af79e97a825 alpine:latest "/bin/sh" 6 seconds ago Up 5 seconds recursing_taussig

从上面的结果可以看到,尽管我用同一个 Docker 镜像创建了两个容器,它们获得了不同的 ID 和名字。

如果你想给容器赋一个不变的名字,使用--name标签,像下面这样:

  1. $ sudo docker run -it -d --name ostechnix_alpine alpine:latest

上面的命令会在脱离模式中创建一个叫做ostechnix_alpine的新容器。

我们看一下当前运行的容器列表:

  1. $ sudo docker ps

输出结果:

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  2. 397111fac537 alpine:latest "/bin/sh" 2 seconds ago Up 2 seconds ostechnix_alpine

  3. 80b53b7e661d alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes bold_margulis

  4. 2af79e97a825 alpine:latest "/bin/sh" 7 minutes ago Up 7 minutes recursing_taussig

Assign Name To Containers

注意到上面输出结果中的第一个容器的名字了吗?对了,我们给这个容器分配了一个自定义的名字(也就是ostechnix_alpine)。

给容器分配自定义的名字可以给我们带来其他好处。只要看一下容器的名字,我们就能很容易的确定那个容器里面安装了什么。

11、构建自定义 Docker 镜像

Docker 不仅仅是下载和使用已存在的容器。你也可以创建自己的自定义 Docker 镜像。

现在我们开始一个 Ubuntu 容器:

  1. $ sudo docker run -it ubuntu:latest

现在,你会进入到容器的 shell。

然后,在容器中,你可以安装任何的软件或者做你想做的事情。

比如,我们在容器中安装 Apache Web 服务器。

  1. # apt update

  2. # apt install apache2

相似地,在容器中,可以根据自己的需要安装和测试软件。

完成以后,从容器脱离(不要退出)回到主机系统的 shell。不要终止或者关闭容器。使用CTRL+P然后CTRL+Q从容器中脱离,这样不会关闭容器。

在你的 Docker 主机的终端,运行下面的命令来找到容器 ID:

  1. $ sudo docker ps

最后,创建一个当前运行中的容器的 Docker 镜像,使用命令:

  1. $ sudo docker commit 377e6d77ebb5 ostechnix/ubuntu_apache

输出结果:

  1. sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1

这里,

377e6d77ebb5– Ubuntu 容器的 ID。

ostechnix– 创建容器的用户的名字。

ubuntu_apache– 用户ostechnix创建的 Docker 镜像的名字。

现在我们查看一下新的 Docker 镜像是否被创建了,使用下面的命令:

  1. $ sudo docker images

输出结果:

  1. ostechnix/ubuntu_apache

Build Custom Docker Images

从上面给的结果中可以看到,从运行中的容器创建的新 Docker 镜像已经在我们的 Docker 主机系统中了。

现在你就可以从这个新的 Docker 镜像创建行容器了,用之前的命令:

  1. $ sudo docker run -it ostechnix/ubuntu_apache

12、移除容器

当你在 Docker 容器中完成所有开发后,如果你不需要它们了,你可以删掉它们。

为此,首先我们需要终止(关闭)运行中的容器。

用这个命令来看一下运行中的容器:

  1. $ sudo docker ps

输出结果:

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  2. 377e6d77ebb5 ubuntu:latest "bash" 7 minutes ago Up 7 minutes elegant_beaver

通过使用它的 ID 来终止运行中的容器:

  1. $ sudo docker stop 377e6d77ebb5

现在,使用这个命令删除容器:

  1. $ sudo docker rm 377e6d77ebb5

同样,如果不再需要所有的容器,关闭并删除它们。

一个一个的删除多个容器会是一项繁琐的工作。所以,我们可以把所有停止的容器一次性删掉,运行:

  1. $ sudo docker container prune

Y然后回车键,这些容器就被删掉了。

  1. WARNING! This will remove all stopped containers.

  2. Are you sure you want to continue? [y/N] y

  3. Deleted Containers:

  4. 397111fac5374921b974721ee646b2d5fbae61ca9c6e8b90fbf47952f382a46b

  5. 80b53b7e661d33696b65c78267fc3f067b6100799c925910db4721963e3fae0a

  6. [...]

  7. Total reclaimed space: 176B

Delete Containers

这个命令只有在最新版中有效。

使用下面的命令来验证是否所有容器都被删除了:

  1. $ sudo docker ps -a

如果看不到任何结果,说明所有容器被删掉了。

13、删除 Docker 镜像

记住,在删除所有镜像之前,首先要删掉所有从那些镜像创建的容器。

当你删掉容器后,你可以删掉你不需要的 Docker 镜像。

列出所有下载的 Docker 镜像:

  1. $ sudo docker images

输出结果:

  1. REPOSITORY TAG IMAGE ID CREATED SIZE

  2. ostechnix/ubuntu_apache latest bc5e5f95ca59 14 minutes ago 229MB

  3. debian latest d2780094a226 11 days ago 124MB

  4. ubuntu latest 27941809078c 3 weeks ago 77.8MB

  5. ubuntu 20.04 20fffa419e3a 3 weeks ago 72.8MB

  6. alpine latest e66264b98777 5 weeks ago 5.52MB

从上面可以看到,在我们的主机上有 5 个 Docker 镜像。

通过使用镜像 ID 来删掉它们:

  1. $ sudo docker rmi ce5aa74a48f1

输出结果:

  1. Untagged: ostechnix/ubuntu_apache:latest

  2. Deleted: sha256:bc5e5f95ca592a3585fda2c5a40ec30c98e292046ef70390a2c3b7863cc6f7c1

  3. Deleted: sha256:a8e4797160a2b2d33d8bd1bd67e008260c022b3a53fbcc198b2b74d9eae5961d

同样,删除其他所有 Docker 镜像。

删掉所有未运行的容器、所有镜像、构建的缓存、所有网络,运行:

  1. $ sudo docker system prune -a

使用这个命令的时候要注意,它会删掉所有没有使用的容器、网络、镜像(包括 挂起(dangling)和未使用(unreferenced) 的)

Delete Everything In Docker

默认情况下,即使当前没有容器在使用磁盘卷(volumes),为防止重要数据被删除,磁盘卷也不会被删除。

如果你想删掉所有东西,包括分配的卷,使用--volumes标签。

  1. $ sudo docker system prune -a --volumes

Docker 问题汇总

如果 Docker 镜像正在被运行或停止的容器使用,Docker 不会允许你删除这些镜像。

比如,当我尝试从一个以前的 Ubuntu 服务器上删除 ID 为b72889fa879c的 Docker 镜像。我会得到下面的错误:

  1. Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377

这是因为你想删除的 Docker 镜像正在被另一个容器使用。

所以,我们先查看一下运行中的容器,使用命令:

  1. $ sudo docker ps

输出结果:

Show running docker containers

噢,没有运行中的容器。

我们在看一下所有的容器(运行和停止的),用这个命令:

  1. $ sudo docker ps -a

输出结果:

Show running and stopped docker containers

可以看到,仍然有停止的容器在使用其中一个 Docker 镜像。所以,我们先把所有容器删掉。

比如:

  1. $ sudo docker rm 12e892156219

类似地,向上面那样,用对应容器的 ID 将它们都删除。

当把所有容器删掉后,移除掉 Docker 镜像。

比如:

  1. $ sudo docker rmi b72889fa879c

就这么简单。现在确认是否还有其他 Docker 镜像在主机上,使用命令:

  1. $ sudo docker images

你现在应该不再有任何 docker 镜像了。

总结

在这篇全面的 Docker 入门教程中,我们解释了 Docker 的基本操作,比如创建、运行、搜索、删除容器,还有从 Docker 镜像构建你自己的容器。同时,我们也解释了如何在不需要 Docker 容器和镜像的时候删除它们。

希望你现在对Docker 的使用有一个基本的了解。

更多细节,请参考这篇教程最下面的官方资源链接,或者在下面的评论区进行评论。

相关资料

◈ www.docker.com

◈ docs.docker.com

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

LCTT 译者 :MCGA

翻译: 10.0 篇

贡献: 754 天

2020-06-21

2022-07-14

https://linux.cn/lctt/Yufei-Yan

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
0-1!欧洲杯头号伪强队诞生:身价6亿,一盘散沙,22年之耻

0-1!欧洲杯头号伪强队诞生:身价6亿,一盘散沙,22年之耻

叶青足球世界
2024-06-18 01:58:55
你捡过最大的漏是什么?网友:被财神爷追着喂饭的感觉

你捡过最大的漏是什么?网友:被财神爷追着喂饭的感觉

有趣的羊驼
2024-06-18 18:21:36
奥运抽签分档出炉,中国女排剑指奖牌,蔡斌李盈莹朱婷相继表态!

奥运抽签分档出炉,中国女排剑指奖牌,蔡斌李盈莹朱婷相继表态!

小鬼头体育
2024-06-18 17:06:56
李冰同志逝世

李冰同志逝世

新京报政事儿
2024-06-18 10:00:43
为什么说不要买二手的东西?看完网友的分享,简直让人毛骨悚然

为什么说不要买二手的东西?看完网友的分享,简直让人毛骨悚然

有趣的羊驼
2024-06-18 18:33:04
苏州楼市全军覆没,苏州园区某小区房价从50000多跌至34000多元

苏州楼市全军覆没,苏州园区某小区房价从50000多跌至34000多元

有事问彭叔
2024-06-17 21:26:54
最不应该反对收税的那群人开始为补税企业叫屈了,现实太过魔幻

最不应该反对收税的那群人开始为补税企业叫屈了,现实太过魔幻

王五说说看
2024-06-18 15:23:03
中超嫩哨惹争议!海港手球判有效,球迷围堵裁判,或遭足协重罚

中超嫩哨惹争议!海港手球判有效,球迷围堵裁判,或遭足协重罚

体坛春秋
2024-06-19 02:29:04
鼻梁骨折!据说这是姆巴佩戴上面具的样子

鼻梁骨折!据说这是姆巴佩戴上面具的样子

直播吧
2024-06-18 09:12:23
6月17日俄乌最新:今年以来最关键的一战

6月17日俄乌最新:今年以来最关键的一战

西楼饮月
2024-06-17 17:27:31
71年毛主席来到杭州休息,看见陈励耘时,厌烦道:你怎么又来了

71年毛主席来到杭州休息,看见陈励耘时,厌烦道:你怎么又来了

让时间说真话
2024-06-05 22:10:13
姆巴佩“冷落”C罗

姆巴佩“冷落”C罗

星耀国际足坛
2024-06-18 22:27:02
快船签约达成!哈登很尴尬,争冠前景被看衰,三巨头面临着解体

快船签约达成!哈登很尴尬,争冠前景被看衰,三巨头面临着解体

呆哥聊球
2024-06-18 23:53:17
把假睫毛卸了,口红擦了,胸勒平了,才算不糊弄观众的女扮男装!

把假睫毛卸了,口红擦了,胸勒平了,才算不糊弄观众的女扮男装!

娱乐圈笔娱君
2024-06-18 17:57:44
中方下达逮捕令,2艘坐滩军舰恐被扣押,菲方紧急发出战争警告!

中方下达逮捕令,2艘坐滩军舰恐被扣押,菲方紧急发出战争警告!

绝对军评
2024-06-18 07:54:41
南医大处罚教师后续:举报者身份被扒,上课画面曝光,官方新回应

南医大处罚教师后续:举报者身份被扒,上课画面曝光,官方新回应

凯旋学长
2024-06-17 18:02:40
姜萍被北科大教授“挖走”辅导备战决赛?校方辟谣

姜萍被北科大教授“挖走”辅导备战决赛?校方辟谣

极目新闻
2024-06-18 18:37:31
男子持刀砍妻17刀进展:妻子抢救7天终清醒,曝被砍原因惹人心酸

男子持刀砍妻17刀进展:妻子抢救7天终清醒,曝被砍原因惹人心酸

林大师热点
2024-06-18 16:18:37
被打出反对标语!女排主力龚翔宇痛哭原因曝光,网友:球迷太过分

被打出反对标语!女排主力龚翔宇痛哭原因曝光,网友:球迷太过分

体坛知识分子
2024-06-18 06:05:02
欧洲杯一夜创3纪录!19岁巨星炸裂:22米天外飞仙,万人面前滑跪

欧洲杯一夜创3纪录!19岁巨星炸裂:22米天外飞仙,万人面前滑跪

侃球熊弟
2024-06-19 02:18:48
2024-06-19 04:16:49
Linux
Linux
Linux 中国开源社区
8016文章数 73123关注度
往期回顾 全部

科技要闻

第一批小米车主,已经开始卖车了

头条要闻

欧洲杯-皇马19岁天才世界波 土耳其3-1格鲁吉亚

头条要闻

欧洲杯-皇马19岁天才世界波 土耳其3-1格鲁吉亚

体育要闻

对于凯尔特人来说 谁是MVP根本不重要

娱乐要闻

被曝新恋情,张碧晨王琳凯发声辟谣

财经要闻

官方:税务部门没有倒查30年的安排

汽车要闻

全球最低价 现代IONIQ 5N预售价39.88万

态度原创

教育
时尚
本地
亲子
数码

教育要闻

常识题:谁是中山装的创始人?这道题很简单,顾名思义

陆仙人:一步一步的路

本地新闻

我和我的家乡|在鞍山的每一步都有新发现

亲子要闻

日本妈妈15年连生9胎,老十也在路上!这“幼儿园”太难带,她已经躺平了...

数码要闻

两大苹果专家同一天发文:iPad只是开始 iPhone和手表也将努力变薄

无障碍浏览 进入关怀版