Docker 新建并启动容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # docker run [OPTIONS] IMAGE [COMMAND] [ARG...]# docker run -it --name ="centos" centos /bin/bash# docker run -d centos
Docker 容器的重启策略 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # docker run -it --restart =on-failure:5 --name ="centos" centos /bin/bash# docker inspect -f "{{ .RestartCount }}" centos0 # docker inspect -f "{{ .State.StartedAt }}" centos2019-01-27T03:54:44.510836372Z
Docker 列出当前正在运行的容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # docker ps [OPTIONS]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04c9fdf618f6 1e1148e4cc2c "/bin/bash" 5 minutes ago Up 4 minutes hardcore_leavitt # docker rename old_container_name new_container_name
Docker 断开与当前容器的连接 1 2 3 4 5 6 7 8 # exit ctrl + p + q # exit
Docker 在运行的容器中执行命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # docker exec [OPTIONS] CONTAINER COMMAND [ARG...]# docker exec -it 1a3941b6ae8e /bin/bash# docker exec -it 1a3941b6ae8e /bin/bash /root/monitor.sh# docker exec -t 1a3941b6ae8e date
Docker 连接到正在运行的容器 1 2 3 4 5 6 7 8 9 10 11 # docker attach [OPTIONS] CONTAINER# docker attach 1a3941b6ae8e# docker exec -it 1a3941b6ae8e /bin/bash
Docker 启动、重启、停止、强制停止容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # docker start [OPTIONS] CONTAINER [CONTAINER...]# docker restart [OPTIONS] CONTAINER [CONTAINER...]# docker stop [OPTIONS] CONTAINER [CONTAINER...]# docker kill [OPTIONS] CONTAINER [CONTAINER...]# docker start 1a3941b6ae8e# docker restart 1a3941b6ae8e# docker stop 1a3941b6ae8e# docker kill 1a3941b6ae8e
Docker 删除容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # docker rm [OPTIONS] CONTAINER [CONTAINER...]# docker rm 1a3941b6ae8e# docker rm -f 1a3941b6ae8e# docker rm $(docker ps -aq )# docker ps -aq | xargs docker rm
Docker 显示容器内部的日志信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # docker logs [OPTIONS] CONTAINER# docker logs 1a3941b6ae8e# docker logs -t -f --tail 5 1a3941b6ae8ectrl + c
Docker 显示容器内部运行的进程 1 2 3 4 5 # docker top CONTAINER [ps OPTIONS]# docker top 1a3941b6ae8e
Docker 容器与宿主机互相拷贝文件 1 2 3 4 5 6 7 8 9 10 # docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-# docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH# docker cp 1a3941b6ae8e:/root/anaconda-ks.cfg /root# docker cp /root/monitor.log 1a3941b6ae8e:/root
Docker 显示容器的内部细节 1 2 3 4 5 6 7 8 9 10 # docker inspect [OPTIONS] NAME|ID [NAME|ID...]# docker inspect 1a3941b6ae8e
Docker 新建并启动 Tomcat 容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # docker pull tomcat# docker run -it -p 8888:8080 --name ="tomcat8.5" tomcat# docker run -it -P --name ="tomcat8.5" tomcatctrl + p + q # docker run -d -p 8888:8080 --name ="tomcat8.5" tomcat# docker run -d -P --name ="tomcat8.5" tomcat# docker exec -it tomcat8.5 /bin/bash
Docker 提交容器副本,生成新的 Docker 镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]# docker commit -a "peter@163.com" -m "first commit" 1a3941b6ae8e peter/mytomcat:8.5# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE peter/mytomcat 8.5 1ca4c9763049 16 seconds ago 475MB
Docker 新建并后台启动容器的介绍 一. Docker 新建并后台启动容器(“docker run -d xxxx”),然后通过命令”docker ps -a” 进行查看,会发现容器已经退出;这里必须注意的是,Docker 容器后台启动之后,就必须有一个前台进程。容器启动的命令,如果不是那些一直挂器起的命令(top、tail),默认就是会自动停止。
二。以 Nginx 为例,正常情况下配置启动服务只需要启动相应的 Service 即可,例如执行命令”systemctl start nginx”。但是这样做,Nginx 如果以后台进程模式运行,会导致 Docker 前台没有运行的应用;这样的容器在后台启动后,会立即自杀,因为容器觉得自身没事可做了;这一点与 Supervistor 配置程序后台运行很相似。所以,最佳的解决方案是将需要运行的程序以前台进程的形式运行。
三。实践操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # docker run -d centos /bin/sh -c "while true;do echo hello docker;sleep 2;done" 1a3941b6ae8e # docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1a3941b6ae8e centos "/bin/sh -c 'while t…" 11 minutes ago Up 11 minutes infallible_haslett # docker logs -f -t --tail 5 1a3941b6ae8e2018-12-24T19:06:07.180718501Z hello docker 2018-12-24T19:06:09.185193606Z hello docker 2018-12-24T19:06:11.189919184Z hello docker 2018-12-24T19:06:13.193004892Z hello docker 2018-12-24T19:06:15.196940992Z hello docker
Docker 常用命令图解