Docker常用指令
停止一个docker容器
#docker stop 此方式常常被翻译为优雅的停止容器
docker stop 容器ID或容器名
#参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
ZHR:rmq zc$ docker stop -t=15 7a6f283bef3f
7a6f283bef3f
## docker kill 不优雅,嗯,就是强制 :直接关闭容器
docker kill 容器ID或容器名
ZHR:rmq zc$ docker kill ae91e1a62e74
ae91e1a62e74
查看docker文件
ZHR:~ zc$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
foxiswho/rocketmq 4.8.0 98bc46e1c0c1 5 months ago 505MB
styletang/rocketmq-console-ng latest 7df83bb6e638 3 years ago 702MB
查看docker容器
查看正在运行的容器
ZHR:rmq zc$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a6f283bef3f styletang/rocketmq-console-ng "sh -c 'java $JAVA_O…" About a minute ago Up About a minute 0.0.0.0:8180->8080/tcp, :::8180->8080/tcp rmqconsole
ae91e1a62e74 foxiswho/rocketmq:4.8.0 "sh mqbroker -c /etc…" About a minute ago Up About a minute 0.0.0.0:10909->10909/tcp, :::10909->10909/tcp, 9876/tcp, 10912/tcp, 0.0.0.0:10911->10911/tcp, :::10911->10911/tcp rmqbroker
查看全部容器,包括已经停止了的容器
根据容器的STATUS来判断容器的状态
ZHR:rmq zc$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a6f283bef3f styletang/rocketmq-console-ng "sh -c 'java $JAVA_O…" 3 minutes ago Up 3 minutes 0.0.0.0:8180->8080/tcp, :::8180->8080/tcp rmqconsole
ae91e1a62e74 foxiswho/rocketmq:4.8.0 "sh mqbroker -c /etc…" 3 minutes ago Up 3 minutes 0.0.0.0:10909->10909/tcp, :::10909->10909/tcp, 9876/tcp, 10912/tcp, 0.0.0.0:10911->10911/tcp, :::10911->10911/tcp rmqbroker
1e6286736192 foxiswho/rocketmq:4.8.0 "sh mqnamesrv" 3 minutes ago Exited (137) About a minute ago
已经停止的容器id
ZHR:rmq zc$ docker ps -a -q
7a6f283bef3f
ae91e1a62e74
1e6286736192
删除容器
删除已经停止的容器
ZHR:rmq zc$ docker rm $(docker ps -a -q)
7a6f283bef3f
ae91e1a62e74
1e6286736192
删除正在运行的容器
ZHR:rmq zc$ docker rm 86ec952e0765
Error response from daemon: You cannot remove a running container 86ec952e07659d0d0d60fc1369f0098523e37c7066f6aa657f14ba1383d99884. Stop the container before attempting removal or force remove
ZHR:rmq zc$ docker rm -f 86ec952e0765
86ec952e0765
开启一个已经停止的容器
ZHR:rmq zc$ docker ps -a -q
90ece2b2aa41
4ffd875fa974
ZHR:rmq zc$ docker start 4ffd875fa974
4ffd875fa974
重启容器
ZHR:rmq zc$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90ece2b2aa41 styletang/rocketmq-console-ng "sh -c 'java $JAVA_O…" 7 minutes ago Up 7 minutes 0.0.0.0:8180->8080/tcp, :::8180->8080/tcp rmqconsole
4ffd875fa974 foxiswho/rocketmq:4.8.0 "sh mqnamesrv" 8 minutes ago Up 7 minutes 10909/tcp, 0.0.0.0:9876->9876/tcp, :::9876->9876/tcp, 10911-10912/tcp rmqnamesrv
ZHR:rmq zc$ docker restart 90ece2b2aa41
90ece2b2aa41
启动容器
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
-t: 终端。
-d 参数默认不会进入容器
-i: 交互式操作
前面的是我们容器启动后的名字,后面的是容器images的名字
ZHR:rmq zc$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
foxiswho/rocketmq 4.8.0 98bc46e1c0c1 5 months ago 505MB
styletang/rocketmq-console-ng latest 7df83bb6e638 3 years ago 702MB
ZHR:rmq zc$ docker run -itd --name rocketmq foxiswho/rocketmq /bin/bash
进入容器和退出容器
#docker exec -it 容器ID /bin/bash
ZHR:rmq zc$ docker exec -it cb194e87c037 /bin/bash
[rocketmq@cb194e87c037 bin]$ ls
README.md cleancache.sh dledger mqadmin.cmd mqbroker.cmd mqbroker.numanode1 mqbroker.numanode3 mqnamesrv.cmd mqshutdown.cmd play.cmd runbroker.cmd runbroker.sh~ runserver.sh setcache.sh to_bytes.gawk tools.sh
cachedog.sh cleancache.v1.sh mqadmin mqbroker mqbroker.numanode0 mqbroker.numanode2 mqnamesrv mqshutdown os.sh play.sh runbroker.sh runserver.cmd runserver.sh~ startfsrv.sh tools.cmd
[rocketmq@cb194e87c037 bin]$ exit
exit
ZHR:rmq zc$