docker容器操作

docker容器操作

实验环境

操作系统:CentOS Linux release 7.3.1611 (Core)

docker版本:17.11.0-ce

容器操作

查看容器

加上-a表示已关闭容器也列出

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
bb32a4190e9c        eg_postgresql       "/usr/lib/postgresql…"   2 weeks ago         Exited (137) 7 days ago                        pg_slv
786a02b627cb        centos              "/usr/sbin/init"         3 weeks ago         Exited (137) 3 weeks ago                       optimistic_heisenberg
1e77d8579e70        centos              "/usr/sbin/init"         3 weeks ago         Exited (137) 3 weeks ago                       thirsty_golick
b60d2bf9bc66        centos              "yum install vim -y"     3 weeks ago         Exited (0) 3 weeks ago                         lucid_liskov
a1964007dc18        centos              "yum update -y"          3 weeks ago         Exited (0) 3 weeks ago                         happy_heisenberg
0cfa73029220        hello-world         "/hello"                 3 weeks ago         Exited (0) 3 weeks ago                         cocky_shockley
6bf3e2317987        hello-world         "/hello"                 4 weeks ago         Exited (0) 4 weeks ago

创建容器

创建自动删除的容器
[root@localhost ~]# docker run -it --rm ubuntu bash

其中i表示交互式操作,t表示终端,合在一起表示使用交互是终端查看结果;
rm表示容器退出后自动删除,避免浪费空间;
bash表示使用交互式shell

完成命令后自动进入容器,查看容器环境状况:

root@10dcd558e263:/# cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

退出容器:

root@10dcd558e263:/# exit
exit
创建后台运行的容器

加上-d参数,表示在后台运行

[root@localhost ~]# docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1; done"
6d696601941abcffdb0c180a2b7e2d2c767cc3650b63de1664cae1aeefae5e01
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
6d696601941a        ubuntu              "/bin/sh -c 'while t…"   2 seconds ago       Up 1 second                             wonderful_bassi

查看后台输出状态:

[root@localhost ~]# docker logs 6d696601941a
hello world
hello world
hello world
hello world
hello world

终止容器

使用stop命令可以终止正在运行的容器

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
6d696601941a        ubuntu              "/bin/sh -c 'while t…"   2 minutes ago       Up 2 minutes                            wonderful_bassi
[root@localhost ~]# docker stop 6d696601941a
6d696601941a
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
6d696601941a        ubuntu              "/bin/sh -c 'while t…"   5 minutes ago       Exited (137) 7 seconds ago                       wonderful_bassi

同理,start命令可以启动已关闭的容器,restart命令可以重启容器

进入容器

进入容器终端:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ade096b7ac8d        ubuntu              "/bin/sh -c 'while t…"   4 seconds ago       Up 3 seconds                            brave_stallman
[root@localhost ~]# docker exec -it ade096b7ac8d bash

删除容器

rm命令无法删除正在运行的容器:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ade096b7ac8d        ubuntu              "/bin/sh -c 'while t…"   2 minutes ago       Up 2 minutes                            brave_stallman
[root@localhost ~]# docker rm ade096b7ac8d
Error response from daemon: You cannot remove a running container ade096b7ac8daacfe25d76d74f888aa5f307e593d1fd2e5426a54819f9233965. Stop the container before attempting removal or force remove

想要删除正在运行的容器,要么先stop,要么在rm命令后加上-f

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ade096b7ac8d        ubuntu              "/bin/sh -c 'while t…"   4 minutes ago       Up 4 minutes                            brave_stallman
[root@localhost ~]# docker stop ade096b7ac8d
ade096b7ac8d
[root@localhost ~]# docker rm ade096b7ac8d
ade096b7ac8d
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
6d696601941a        ubuntu              "/bin/sh -c 'while t…"   21 minutes ago      Exited (137) 16 minutes ago                       wonderful_bassi

特别的,可以使用命令删除所有处于终止状态的容器:

查看容器状态,只有一个eg_postgresql容器为开启状态,其他的都处于终止状态

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                    NAMES
6d696601941a        ubuntu              "/bin/sh -c 'while t…"   23 minutes ago      Exited (137) 17 minutes ago                            wonderful_bassi
cc5fefaaee53        ubuntu              "/bin/bash"              24 minutes ago      Exited (0) 23 minutes ago                              nervous_jepsen
bb32a4190e9c        eg_postgresql       "/usr/lib/postgresql…"   2 weeks ago         Up 9 seconds                  0.0.0.0:5436->5432/tcp   pg_slv
786a02b627cb        centos              "/usr/sbin/init"         3 weeks ago         Exited (137) 3 weeks ago                               optimistic_heisenberg
1e77d8579e70        centos              "/usr/sbin/init"         3 weeks ago         Exited (137) 3 weeks ago                               thirsty_golick
b60d2bf9bc66        centos              "yum install vim -y"     3 weeks ago         Exited (0) 3 weeks ago                                 lucid_liskov
a1964007dc18        centos              "yum update -y"          3 weeks ago         Exited (0) 3 weeks ago                                 happy_heisenberg
0cfa73029220        hello-world         "/hello"                 3 weeks ago         Exited (0) 3 weeks ago                                 cocky_shockley
6bf3e2317987        hello-world         "/hello"                 4 weeks ago         Exited (0) 4 weeks ago                                 tender_lamport

执行清理命令:

[root@localhost ~]# docker rm $(docker ps -a -q)
6d696601941a
cc5fefaaee53
786a02b627cb
1e77d8579e70
b60d2bf9bc66
a1964007dc18
0cfa73029220
6bf3e2317987
Error response from daemon: You cannot remove a running container bb32a4190e9cb870a2276d30e941efb8f8be4800b1764294e4a6747f4896c75e. Stop the container before attempting removal or force remove

由于eg_postgresql容器为运行状态,无法被rm命令删除,会报错

再次查看容器状态,只有eg_postgresql容器还健在

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
bb32a4190e9c        eg_postgresql       "/usr/lib/postgresql…"   2 weeks ago         Up 29 seconds       0.0.0.0:5436->5432/tcp   pg_slv

同理的如果要清空所有容器,只需在docker rm命令后加-f即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值