容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。
一、启动容器
1:启动新容器
0 1 2 3 4 5 6 7 |
$ docker run centos /bin/echo 'Hello world' Hello world $ docker run ubuntu:16.04 /bin/echo 'Hello world' Hello world $ docker run -t -i centos /bin/bash [root@ea26e5bb8a3c /]# $ docker run ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" $ docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" |
注释:SourceByrd's Weblog-https://note.t4x.org/cloud/docker-container-run/
-it :这是两个参数
-i :交互式操作,容器的标准输入保持打开 。
-t :选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上 。
我们这里打算进入bash 执行一些命令并查看返回结果,因此我们需要交互式终端 。
-d : 后台运行容器,并不会把输出的结果 (STDOUT) 打印到宿主机上面 SourceByrd's Weblog-https://note.t4x.org/cloud/docker-container-run/
2:复用旧容器
0 1 2 3 4 5 6 7 8 9 |
docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d9fa0f34921 centos "/bin/bash" 5 minutes ago Exited (137) 19 seconds ago $ docker container start 2d9fa0f34921 $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d9fa0f34921 centos "/bin/bash" 6 minutes ago Up 17 seconds agitated_cray $ docker container stop 2d9fa0f34921 |
二、停止容器
0 1 2 3 4 5 6 7 8 |
$ docker run -t -i -d centos /bin/bash ce97d5ffcd35f84d77e1e83044e83bb53deb7724f03e58e433df949b570e706d $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ce97d5ffcd35 centos "/bin/bash" 57 seconds ago Up 55 seconds romantic_keller $ docker container stop ce97d5ffcd35 $ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ce97d5ffcd35 centos "/bin/bash" About a minute ago Exited (137) 8 seconds ago romantic_keller |
三、进入容器
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ docker container ls #空 $ docker run -dit centos ed370825f42f8906118e2bac7ff85034ef8e44199955bd22a63f472f0831bdf7 $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ed370825f42f centos "/bin/bash" 15 seconds ago Up 14 seconds musing_bhabha $ docker attach ed370825f42f [root@ed370825f42f /]# exit exit $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ====docker attach会退出容器============exec不会退出容器==== $ docker run -dit centos 2d9fa0f3492182a0d35c8087065a0744f2154911608a1480e1c78023d06af2a5 $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d9fa0f34921 centos "/bin/bash" 16 seconds ago Up 14 seconds agitated_cray $ docker exec -ti 2d9fa0f34921 /bin/bash [root@2d9fa0f34921 /]# exit exit $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d9fa0f34921 centos "/bin/bash" 2 minutes ago Up 2 minutes agitated_cray |
四、删除容器
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ docker container ls -a #docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d9fa0f34921 centos "/bin/bash" 11 minutes ago Exited (137) 3 minutes ago agitated_cray ed370825f42f centos "/bin/bash" 12 minutes ago Exited (0) 11 minutes ago $ docker container rm 2d9fa0f34921 #docker rm ed370825f42f $ docker container rm $(docker ps -aq) #清空所有退出的容器 $ docker container prune #清空所有退出的容器 $ docker run --name=test centos /bin/echo 'Hello world' Hello world $ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES afd39885c448 centos "/bin/echo 'Hello wo…" 7 seconds ago Exited (0) 6 seconds ago test $ docker container rm test test $ docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
申明:除非注明Byrd's Blog内容均为原创,未经许可禁止转载!详情请阅读版权申明!