一、Docker 帮助指令
1. 帮助命令
- 功能:帮助命令
- 用法
# docker version #显示docker的版本信息
# docker info #显示docker的系统信息,包括镜像和容器的数量
# docker --help #显示帮助信息
二、Docker 镜像指令
1. 查看镜像
- 指令
docker images
- 功能:查看所有的镜像
- 用法
# docker images
# 可选项
-a, --all # 列出所有的镜像
-q, --quiet # 只显示镜像的id
-
案例
名称 含义 REPOSITORY 镜像的仓库源 TAG 镜像的标签 IMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小
2. 搜索镜像
- 指令
docker search
- 功能:搜索镜像
- 用法
# docker search 搜索镜像
# 可选项,通过搜素过滤
--filter=STARS=3000 # 搜索镜像的STARS值均大于3000
- 案例
这里的搜索和官网的搜索是一样的,可以进入官网的搜索文档中搜索自己需要的镜像文件,搜索结果如下图所示
3. 下载镜像
- 指令
docker pull
- 功能:下载镜像
- 用法
# docker pull 镜像名[:tag]
# 如果不写 tag,默认下载的是latest
- 案例
注意: docker pull mysql 等同于 docker pull docker.io/library/mysql:latest; 指定版本下载时,要和官网搜索的版本一致,如下图所示
4. 删除镜像
- 指令
docker rmi
- 功能:删除镜像
- 用法
# docker rmi -f 镜像id # 删除指定镜像
# docker rmi -f 镜像id 镜像id 镜像id # 删除多个镜像
# docker rmi -f $(docker images -aq) # 删除所有镜像
- 案例
三、Docker 容器命令
1. 运行容器
- 指令
docker run
- 功能:运行容器
- 用法
# docker run [可选参数] image
--name="Name" 容器名字 如tomcat01、tomcat02、tomcat03, 用来区分容器
-d 后台运行方式
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 主要有四种运行模式,如:
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用)
-p 容器端口
容器端口
-P 随机端口
-e 环境配置
-v 卷挂载
- 案例
2. 退出容器
- 指令
exit
- 功能:退出容器
- 用法
# exit # 停止容器并退出
# Ctrl + P + Q # 容器不停止退出
- 案例
3. 查看运行容器
- 指令
docker ps
- 功能:列出所有的运行容器
- 用法
# docker ps
# 列出当前正在运行的容器
-a # 列出当前正在运行的容器+历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
- 案例
4. 删除容器
- 指令
docker rm
- 功能:删除容器
- 用法
# docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除使用rm -f
# docker rm -f $(docker ps -aq) # 删除所有容器
# docker ps -a -q|xargs docker rm # 删除所有容器
- 案例
5. 启动和停止容器
- 功能:启动和停止容器
- 用法
# docker start 容器id # 启动容器
# docker restart 容器id # 重启容器
# docker stop 容器id # 停止当前正在运行的容器
# docker kill 容器id # 强制停止当前容器
四、Docker 其他命令
1. 后台启动容器
- 指令
docker run
- 功能:后台启动容器
- 用法
# 命令 docker run -d 镜像名
- 案例
注意: docker ps,发现 ubuntu停止了,这是一个常见的坑。docke 容器使用后台运行时,需要有一个前台进程,docker发现没有应用,就会自动停止,比如nginx容器启动后,发现自己没有提供服务,便会立即停止。
2. 查看日志
- 指令
docker logs
- 功能:后台启动容器
- 用法
# docker logs -tf 容器id # 没有发现日志
-tf # 显示所有日志
--tail number # 指定显示日志的数量
# 遇到没有日志输出的容器运行时,通过日志指令无法观察现象,所以需要在容器中编译一个打印日志的程序
# docker run -d ubuntu /bin/sh -c "while true;do echo test;sleep 1;done"
- 案例
3. 查看容器中进程信息
- 指令
docker top
- 功能:查看容器中进程信息
- 用法
# docker top 容器id
- 案例
4. 查看镜像的元数据
- 指令
docker inspect
- 功能:查看镜像的元数据
- 用法
# docker inspect 容器id
- 案例
5. 进入当前正在运行的容器
- 指令
docker exec
、docker attach
- 功能:进入当前正在运行的容器
- 用法
# docker exec -it 容器id bashShell # 进入容器后开启一个新的终端,可以进行常规操作
# docker attach 容器id # 进入容器正在执行的终端,不会开启新的进程。
- 案例
6. 从容器内拷贝文件到主机上
- 指令
docker cp
- 功能:从容器内拷贝文件到主机上
- 用法
# docker cp 容器id:容器内路径 目的主机的路径
- 案例
注意: 拷贝是一个手动过程,未来我们可以使用 -v 卷的技术,可以实现和主机同步
7. 从容器创建一个新的镜像
- 指令
docker commit
- 功能:从容器创建一个新的镜像
- 用法
# docker commit 容器id 镜像名称:版本号
# -a # 提交的镜像作者
# -c # 使用Dockerfile指令来创建镜像
# -m # 提交时的说明文字
# -p # 在commit时,将容器暂停
- 案例
8. 数据卷
- 指令
docker volume
- 功能: 管理卷
- 用法
# docker volume create edc-nginx-vol // 创建一个自定义容器卷
# docker volume ls // 查看所有容器卷
# docker volume inspect edc-nginx-vol // 查看指定容器卷详情信息
# docker volume rm edc-nginx-vol // 删除自定义数据卷
- 案例
参考文献
Docker官方镜像搜索网址:<hub.docker.com>
Docker最新超详细版教程通俗易懂:https://www.bilibili.com/video/BV1og4y1q7M4?p=1