Docker 入门指南(三):容器管理

在上一篇文章 Docker 入门指南(二):运行第一个容器 中,我介绍了如何在安装 Docker 的基础上,运行第一个容器,这篇文章是 Docker 容器的各种操作,包括新建容器、启动、关闭、重启 已经查看容器运行情况。

一、运行交互式容器

运行容器的命令是 docker run ,这个命令提供了 Docker 容器创建和启动的功能。可以通过在 docker run 命令后面添加 -it 参数来创建交互式容器,-i参数保证容器中STDIN是开启的,-t 参数告诉 Docker 要为创建的容器分配一个伪tty终端,这样容器才能提供一个交互式的shell。创建命令为:

docker run -it ubuntu /bin/bash

这条命令中 ubuntu 告诉 Docker 基于那个镜像创建容器,/bin/bash 则是创建容器后执行的命令。

这样就可以创建一个 ubuntu 镜像的容器,创建成功后,Docker 会执行容器中的/bin/bash 命令,然后就可以看到容器中的shell了。

执行过程:

[root@VM_71_7_centos ~]#  docker run -it ubuntu /bin/bash
 Unable to find image 'ubuntu:latest' locally
 latest: Pulling from library/ubuntu
 6d28225f8d96: Pull complete 
 166102ec41af: Pull complete 
 d09bfba2bd6a: Pull complete 
 c80dad39a6c0: Pull complete 
 a3ed95caeb02: Pull complete 
 Digest: sha256:5718d664299eb1db14d87db7bfa6945b28879a67b74f36da3e34f5914866b71c
 Status: Downloaded newer image for ubuntu:latest
 root@515a73fb934a:/# 

要停止交互式容器,只需要输入 exit 命令,就可以停止容器。

二、创建守护式容器

守护式容器和交互式容器不同,可以长期运行,但是没有交互式会话,非常适合运行应用程序和服务。

使用 -d  参数可以创建守护式容器,命令为:

docker run -d ubuntu

创建成功会返回容器的长id,过程如下:

# docker run -d ubuntu
 4021afee76279836d4b497b55a8e921f1ade8e993bebfe0f8a02b799a2a7df7a

三、容器命名

在创建容器时,如果不命名,这Docker 会为每一个容器自动生成一个随机的名字,比如创建的上一个容器名为jovial_minsky。如果我们想为容器指定一个名字,可以在创建时使用 –name 参数实现。

例如:

# docker run --name lxx1_container -it ubuntu /bin/bash
 root@dd404ce19079:/#

这样就成功创建了一个命名为lxx1_container 的容器,查看所有的容器可以看到:

dockr ps -a
dockr ps -a

四、停止守护式容器

要停止一个守护式容器,命令为 docker stop ,可以使用容器名,也可以使用容器的ID.命令分别为:

docker stop shouhushi

或者

docker stop 72856d1af179

五、重新启动已经停止的容器

使用docker start 命令可以重新启动已经停止运行的容器,和停止容器一样,可以使用容器名,也可以使用容器ID来重新启动这个容器,命令为:

docker start ubuntu

或者为

docker start 72856d1af179

六、附着到容器上

当我们想与已经运行的交互式容器进行交互时,可以使用 docker attach 附着在容器上,与容器进行交互。命令为:

docker attach ubuntu_docker

或者也可以使用容器的ID ,如:

docker attach 515a73fb934a

七、查看容器日志

当我们创建了一个在后台运行的守护型容器时,可以使用 docker logs 命令来获取容器的日志,从而可以看到容器正在进行的工作,代码为:

docker logs ubuntu_docker

如果要持续监控容器的日志信息,可以添加 -f 参数,详细命令为:

docker logs -f 515a73fb934a

八、查看容器内的进程

可以使用 docker top 命令查看容器进程,代码和输出为:

docker top 515a73fb934
查看容器内的进程
查看容器内的进程

九、在容器内部运行进程

我们可以使用 docker exec 命令在容器内部额外启动新进程。可以通过添加 -d 或者 -it 参数来启动后台任务或者交互式任务。其命令分别为:

启动后台任务:

docker exec -d 515a73fb9 touch /etc/test.conf

该命令在ID 为515a73fb9 的容器内部新建了一个test.conf的空白文件。

启动交互式任务:

 docker exec -it 515a73fb /bin/bash

该命令在515a73fb容器内创建了一个新的bash会话。

在容器内部运行进程
在容器内部运行进程

十、获得详细的容器信息

除可以使用docker ps 获取容器的信息外,还可以通过 docker inspect 来获得更多的容器信息,可以获得容器的名称、命令、网络配置等各种详细信息。使用 docker inspect 获得的信息如下:

[root@VM_71_7_centos ~]# docker inspect 515a73fb934a
[
 {
 "Id": "515a73fb934aa078634c1bd94feb461304b4e31dd68b7a421d411753c099b445",
 "Created": "2016-05-27T01:50:52.449195308Z",
 "Path": "/bin/bash",
 "Args": [],
 "State": {
 "Status": "running",
 "Running": true,
 "Paused": false,
 "Restarting": false,
 "OOMKilled": false,
 "Dead": false,
 "Pid": 21476,
 "ExitCode": 0,
 "Error": "",
 "StartedAt": "2016-05-27T13:22:58.436135515Z",
 "FinishedAt": "2016-05-27T13:22:03.437747018Z"
 },
 "Image": "sha256:c5f1cf30c96b5b55c0e6385f2ecb791790eacfdc874500ec3dd865789e358dd1",


…………
查看容器的详细信息
查看容器的详细信息

十一、删除容器

当我们不需要使用这个容器后,可以使用 docker rm 命令来删除这个容器。如:

docker rm 515

删除成功会返回删除的容器名或者容器 ID。

如果容器正在运行,删除会发生错误,提示信息如下:

Error response from daemon: You cannot remove a running container 515a73fb934a. Stop the container before attempting removal or use -f

删除前必须先停止容器,然后删除,或者也可以使用 docker rm -f 命令来删除运行中的容器。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: Docker 入门指南(三):容器管理 (http://blog.lxx1.com/1585)

如果博客对您有帮助,请给我 打赏


科技爱好者

工科学生大四在读,专业嵌入式开发,喜欢计算机,喜欢单片机,喜欢各种各样美好的东西,相信科技正在改变世界! 这是我的 个人博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.