一、简介
容器是一组或者一个应用,每一个容器相当于一个进程
二.启动容器的两种方式
1.新建并启动一个容器---->docker run
下面命令输出一定内容之后终止容器
===========================================================================
root@node4:~/webNginx# docker run nginx:v3 /bin/echo 'Docker'
Docker
root@node4:~/webNginx#
===========================================================================
下面是bash终端交互式进入一个容器 -t参数是让Docker分配一个伪终端并帮到容器标准输入上,-i 保持容器标准输入打开
============================================================================
root@node4:~/webNginx# docker run -t -i nginx:v3 /bin/bash
root@46afd5bfa53f:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@46afd5bfa53f:/#
=============================================================================
2.启动已经终止的容器
-->docker start 容器名
三.终止容器
-->docker stop
终止状态可以使用docker ps -a来查看
================================================================================
root@node4:~/webNginx# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46afd5bfa53f nginx:v3 "/bin/bash" 7 minutes ago Exited (0) 7 seconds ago backstabbing_stallman
4f207480044c nginx:v3 "/bin/echo Docker" 8 minutes ago Exited (0) 8 minutes ago furious_shaw
6209246fae53 nginx:v2 "nginx -g 'daemon off" About an hour ago Up About an hour 443/tcp, 0.0.0.0:81->80/tcp web2
28a3069293d0 nginx "nginx -g 'daemon off" About an hour ago Up About an hour 0.0.0.0:80->80/tcp, 443/tcp websvr
8dde5c8bcbdb nginx "nginx -g 'daemon off" About an hour ago Exited (0) About an hour ago webserver
953f59f752ab hyperledger/fabric-peer "sh -c 'sleep 5; peer" 21 hours ago Exited (1) 21 hours ago go_vp0_1
33c9199f324e hyperledger/fabric-peer:latest "sh -c 'sleep 10; pee" 22 hours ago Exited (137) 22 hours ago pbft_vp1_1
efb444b3db99 hyperledger/fabric-peer:latest "sh -c 'sleep 10; pee" 22 hours ago Exited (137) 22 hours ago pbft_vp2_1
8450199df690 hyperledger/fabric-peer:latest "sh -c 'sleep 10; pee" 22 hours ago Exited (137) 22 hours ago pbft_vp3_1
5e83900da954 hyperledger/fabric-peer:latest "sh -c 'sleep 10; pee" 22 hours ago Exited (137) 22 hours ago pbft_vp0_1
3d6275544a79 hyperledger/fabric-membersrvc:latest "membersrvc" 22 hours ago Exited (137) 22 hours ago pbft_membersrvc0_1
9ee969eb0063 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 21 hours ago go_vp3_1
b6c6c73edd62 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 21 hours ago go_vp2_1
bed42fcf815d hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 21 hours ago go_vp1_1
3c93ba269f61 hyperledger/fabric-membersrvc "membersrvc" 2 weeks ago Exited (2) 21 hours ago go_membersrvc_1
e718b8caab17 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (2) 2 weeks ago src_vp1_1
1f0fee8f73b0 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (2) 2 weeks ago src_vp0_1
1151855cee65 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (128) 2 weeks ago src_vp3_1
682063f0bd46 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 2 weeks ago src_vp4_1
55bd5e149b87 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (128) 2 weeks ago src_vp2_1
506e23ed5db2 hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 2 weeks ago src_vp5_1
735272ca2e8e hyperledger/fabric-peer "sh -c 'sleep 5; peer" 2 weeks ago Exited (1) 2 weeks ago src_vp_1
405b94a9e4da hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago boring_heisenberg
eafd00c35e2f hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 2 weeks ago gloomy_heyrovsky
8b818e9c9d57 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (137) 2 weeks ago admiring_bell
3afa5ec79b39 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (137) 2 weeks ago evil_swirles
fedcd4ad4ae4 hyperledger/fabric-peer "/bin/bash" 2 weeks ago Created romantic_mayer
4833b64c06d8 registry "/entrypoint.sh /etc/" 2 weeks ago Created zen_turing
3367bbaf5c6d hyperledger/fabric-peer "peer node start" 2 weeks ago Exited (0) 2 weeks ago agitated_joliot
352055dbbf32 hyperledger/fabric-membersrvc "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago msrvc
4eb56989f215 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago serene_goodall
cb2f8743c83b hyperledger/fabric-membersrvc:latest "/bin/bash" 2 weeks ago Exited (137) 2 weeks ago thirsty_blackwell
b7781cf8da4f hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (1) 2 weeks ago modest_volhard
c35d022ff3f0 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (137) 2 weeks ago ecstatic_heisenberg
79e3943bdea7 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago focused_rosalind
ee79e62ffca4 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (127) 2 weeks ago pensive_bell
40c8055c7b97 hyperledger/fabric-peer:latest "bin/bash" 2 weeks ago Created drunk_heyrovsky
e8b740ce4743 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago loving_meitner
19832c166e2a hyperledger/fabric-membersrvc "membersrvc" 2 weeks ago Exited (2) 2 weeks ago src_membersrvc_1
4c8e6c631102 hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago amazing_jones
79ccf54d84ff hyperledger/fabric-peer:latest "/bin/bash" 2 weeks ago Exited (0) 2 weeks ago dreamy_aryabhata
e38f58f3c8a5 hyperledger/fabric-peer:latest "/bin/echo hello" 2 weeks ago Exited (0) 2 weeks ago infallible_lovelace
==============================================================================================================================
我这边没有处理,虚拟机中处于终止状态的容器比较多
四.进入容器
1.安装并配置nsenter工具
方法一、
>>wget https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.tar.xz; tar xJvf util-linux-2.29.tar.xz
>>cd util-linux-2.29
>> ./configure --without-ncurses && make nsenter
>>sudo cp nsenter /usr/local/bin
方法二、建议下载 .bashrc_docker,并将内容放到 .bashrc 中
>>wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
>>echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
2.进入容器方法
1、docker -ps 找到要进入的容器的CONTAINER ID
2、用docker-pid指令获取需要进入容器的PID
>>echo PID=(docker-pid b4378c920828)
3、借助PID进入容器
>>sudo nsenter --target 10981 --mount --uts --ipc --net --pid
五.导入和导出容器
1.导入docker import
$ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
2.导出 docker import
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
$ sudo docker export 7691a814370e > ubuntu.tar
3.通过路径导入导出
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo
六.删除容器
1使用docker rm 删除容器
$sudo docker rm trusting_newton
trusting_newton
2.清理所有处理终止状态的容器
root@node4:~/webNginx# docker rm $(docker ps -a -q)
46afd5bfa53f
4f207480044c
8dde5c8bcbdb
953f59f752ab
33c9199f324e