Docker学习与实践(三)
三、容器的操作1.容器的启动
①新建并启动
# docker run ubuntu:16.04 /bin/echo "hello world"
hello world
②启动一个bash终端,允许用户进行交互。
# docker run -ti ubuntu:16.04 /bin/bash
root@edf8af896cc0:/# pwd
/
#选项 '-t' 开启一个伪终端,'-i' 让容器的标准输入保持打开。
③后台运行
# docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 10; done"
cab4112e91fb0d6eae3762ec2a07b13798e908503a8f58799ac50fd9b4aa7e37
#此时容器会在后台运行并不会把输出的结果打印到宿主机上面,可以使用docker logs查看输出信息。
# docker logs cab41
hello world
hello world
hello world
hello world
2.容器的终止
# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab4112e91fb ubuntu:16.04 "/bin/sh -c 'while t…" 5 minutes ago Up 5 minutes
# docker container stop cab41
cab41
#查看终止的容器
# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab4112e91fb ubuntu:16.04 "/bin/sh -c 'while t…" 7 minutes ago Exited (137) About a minute ago angry_wescoff
#可以使用docker container start来启动处于终止状态的容器
# docker container start cab41
cab41
# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab4112e91fb ubuntu:16.04 "/bin/sh -c 'while t…" 10 minutes ago Up 5 seconds angry_wescoff
# docker attach 4417
root@4417b64c1c7f:/# pwd
/
root@4417b64c1c7f:/# exit
exit
3.进入容器
①attack(输入exit会导致容器的终止)
# docker run -itd ubuntu
4417b64c1c7f5c59bc446467e6d3c033ebbe6412f6e51fa722e463ff2b41a3a9
# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4417b64c1c7f ubuntu "/bin/bash" 8 seconds ago Up 7 seconds hungry_easley
②exec(输入exit不会导致容器的终止)
# docker run -itd ubuntu
5276352cf8d11ec07c12d07adfa209453299822aae779ac9ff2f401e7ff1fcb1
# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5276352cf8d1 ubuntu "/bin/bash" 8 seconds ago Up 8 seconds blissful_edison
# docker exec -it 5276 bash
root@5276352cf8d1:/# whoami
root
root@5276352cf8d1:/# exit
exit
4.容器的导出和导入
①导出
# docker export 4417 > test.tar
# ls
test.tar
②导入
# cat test.tar | docker import - test/ubuntu:v1.1
sha256:fb0e8d9dcaba2d018ec1fe26394f3b4989db55ace695d1c685c5e753fbe8ed9e
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.1 fb0e8d9dcaba 3 seconds ago 85.8MB
#也可以通过指定URL或者某个目录来导入
# docker import /root/test.tar test/ubuntu:v1.2
sha256:e33803dd759481e27cd807536f28fe8ab0cfddd9c3bae2a15b95ea8b7645172b
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.2 e33803dd7594 3 seconds ago 85.8MB
test/ubuntu v1.1 fb0e8d9dcaba 3 minutes ago 85.8MB
5.删除容器
①删除一个处于终止状态的容器
# docker container rm edf8af
edf8af
#如果要删除一个运行中的容器,可以添加 -f 参数来删除。
②清除所有处于终止状态的容器
# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? y
Deleted Containers:
4417b64c1c7f5c59bc446467e6d3c033ebbe6412f6e51fa722e463ff2b41a3a9
5276352cf8d11ec07c12d07adfa209453299822aae779ac9ff2f401e7ff1fcb1
99aee81f7684d59c72d2c1bbc933fd052f2158e833fb08988803108de613de24
cab4112e91fb0d6eae3762ec2a07b13798e908503a8f58799ac50fd9b4aa7e37
#学习文档地址:https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md
页:
[1]