docker常用指令
转载自
1 帮助命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
2 镜像命令
2.1 下载镜像
docker images # 查看所有本地主机上的镜像
docker search mysql # 搜索镜像
docker pull --help # 下载镜像
docker pull mysql:5.7 # 指定MySQL的版本
2.2、删除镜像
docker rmi -f id # 删除指定的镜像,remove image,加上镜像ID
docker rmi -f id id id # 删除多个镜像
docker rmi -f $(docker image -aq) # 批量删除全部的image(-f表示全部删除,即force,-ap查询命令)
3.容器命令
下载CentOS镜像:docker pull centos
新建容器并启动:
docker run --help
docker run [可选参数] image
# 参数说明
--name="Name" 容器名字 Tomcat1 Tomcat2 用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口,-p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-P 随机指定端口
启动并进入容器
docker run -it centos /bin/bash
从容器中退回主机
exit # 直接停止容器并退出
Ctrl + P + Q # 容器不停止退出
ls
列出所有运行的容器
docker ps
-a # 列出当前正在运行的容器,带出历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
docker ps -a
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除,加采纳数rm -f
docker rm -f $(docker ps -aq) # 删除所有的容器
docker ps -a -q | xargs docker rm # 删除所有的容器(管道命令)
启动和停止容器的操作
docker start 容器ID # 启动容器
docker restart 容器ID # 重启容器
docker stop 容器ID # 停止正在运行的容器
docker kill 容器ID # 强制停止当前容器
4 常见其他命令
后台启动容器
docker run -d 镜像名
docker run -d centos
# 问题:docker ps,发现centos停止了
# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# Nginx容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序运行了
查看日志
docker logs --help
docker logs -f -t --tail 容器ID # 容器如果没有日志
# 自己编写shell脚本
"while true;do echo OriginalCoder;sleep 1;done"
docker run -d centos /bin/sh -c "while true;do echo OriginalCoder;sleep 1;done"
docker ps # 查看容器ID
显示日志
-tf # 显示日志(-t:时间戳,-f:持续显示日志)
--tail number # 要显示的日志条数
docker logs -ft --tails 10 容器ID(10代表打印的条数)
查看容器中进程信息ps
docker ps # 查看容器ID
docker top 容器ID
查看镜像的元数据
docker inspect --help
docker ps -a
docker inspect 容器ID
进入当前正在运行的容器
通常情况下,容器都是后台运行的,需要进入容器中,修改一些配置
# 方式一
docker exec -it 容器ID /bin/bash
ls
ps -ef
# 方式二
docker attach 容器ID
区别
# docker exec 进入容器后开启一个新的终端,可以在里面操作
# docker attach 进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机上
docker cp 容器ID: 容器内路径 目的主机路径
docker ps
docker images
docker run -it centos /bin/bash
docker ps
docker attach 容器ID
cd /home
ls
容器内新建一个文件
# touch test.java
exit
docker ps -a
# 将这个文件拷贝出来到主机上
docker cp 容器ID:/home/test.java /home
ls
如果有一天我们淹没在茫茫人海中庸碌一生,那一定是我们没有努力活得丰盛