2-docker-容器
新建并启动
1 | <!-- more --> |
-t:打开终端,让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i:交互式,让容器的标准输入保持打开。在这种模式下,用户可以输入ls、pwd这类命令和os进行交互
启动已终止容器
可以利用 docker container start 命令,直接将一个已经终止的容器启动运行。
后台运行
更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。
此时,可以通过添加 -d 参数来实现。
example:不使用-d:
1
2
3
4
5docker run ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
hello world
hello world
hello world
hello world
使用了 -d 参数运行容器:
1
2$ docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a
此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用docker logs/docker container logs 查看)。
注: 容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。
使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容
器信息。
docker container logs
1 | $ docker container logs [container ID or NAMES] |
终止容器
docker container stop用来终止一个正在运行的容器,如果容器指定的app终止,那么容器也会立刻终止。
可以使用 docker container ls -a查看到终止的容器。
docker container start:将终止的容器重新运行。
docker container restart:将运行的容器终止,然后再重启。
进入容器
使用-d启动容器后,容器会在后台运行,这时候,我们想再次进入容器操作,就需要一些方式,下面介绍2种命令。
attach 命令
1 | >docker run -dit jdk8:v1 |
PS:使用attach退出终端后,容器也会终止,退出。
exec 命令
1 | >docker run -dit jdk8:v1 |
可以看到使用exec进入容器操作,然后退出终端后,容器并没有终止。这个是和attach的主要区别,也是推荐使用的。
docker exec -it 15f bash:bash指的是运行bash,exec要求至少2个参数,一个是容器的id,一个是运行的方式。
删除容器
可以使用 docker container rm 来删除一个处于终止状态的容器。例如
1
2
$ docker container rm trusting_newton
trusting_newton
清理所有处于终止状态的容器
用 docker container ls -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。
同样的道理也可以清理镜像: