获取帮助:docker command --help
来获取命令帮助,比如:docker stats --help
目录
镜像管理
搜索镜像
可以到https://hub.docker.com/网站搜索镜像,也可以在命令行进行搜索:
docker search image*
查看镜像
# 查看已安装镜像
docker images
下载镜像
docker pull image_name
删除镜像
docker rmi -f image_name
运行镜像
# 基本使用
# -it相当于-i -t,-itd相当于-i -t -d
# -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
# -t: 在新容器内指定一个伪终端或终端。
# -d:指定容器的运行模式为后台运行,即默认不会进入容器,想要进入容器需要使用指令 docker exec
# -P:将容器内部使用的网络端口随机映射到宿主机上。
# -p 5000:5000:容器内部的 5000 端口映射到宿主机的 5000 端口上
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
docker run -it image_name /bin/bash
# 暴露8848 9000 9001 443 8181端口映射一个宿主机端口
docker run -it --expose=8848 --expose=9000 --expose=9001 --expose=443 --expose=8181 --publish-all image_name /bin/bash
# 指定容器名称和运行模式
docker run -itd --name ubuntu-test ubuntu /bin/bash
创建镜像
使用Dockerfile创建镜像可以参照:资料
数据卷管理
查看数据卷
docker volume ls
创建数据卷
docker volume create {数据卷名}
删除数据卷
# 删除指定卷
docker volume rm {数据卷名}
# 删除未关联(失效) Docker 数据卷
docker volume prune
docker volume rm $(docker volume ls -qf dangling=true)
容器操作
下面containerId指容器的ID,实际上containerId可以使用容器的名称来替换,以方便记忆。
查看容器
# 查看运行的容器
docker ps
# 查看所有的容器
docker ps -qa
删除容器
# 删除退出的容器(删除容器时,容器必须是停止状态,否则会报错)
docker rm -f containerId
启动/关闭容器
# 启动已停止状态的容器
docker start containerId
# 停止运行中的容器
docker stop containerId
# 重启运行中的容器
docker restart containerId
容器的状态
- created(已创建)
- restarting(重启中)
- running 或 Up(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
进入/退出容器
# 进入终端
docker attach containerId
# 进入终端,推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止
docker exec -it containerId /bin/bash
# 退出不关闭容器
快捷键:ctrl+p+q
# 退出关闭容器
快捷键:ctrl+c(ctrl+d) 或命令:
exit
导入/导出容器
# 导出容器到ubuntu.tar文件
docker export containerId > ubuntu.tar
# 将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
# test/ubuntu:仓库名
# v1:tag(版本号)
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
创建为镜像
# 利用docker commit创建镜像副本,可在docker images中进行查看
# -m: 提交的描述信息
# -a: 指定镜像作者
# runoob/ubuntu:v2:仓库:tag
docker commit -m="commit message" -a="author" containerId runoob/ubuntu:v2
文件操作
# 宿主机文件拷贝到容器
docker cp local_file_name containerId:/docker_file_name
# 容器文件拷贝到宿主机
docker cp containerId:/docker_file_name local_file_name
日志操作
# 宿主机查看容器日志输出
# -f:让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
docker logs -f containerId
查看容器端口映射
# 查看容器端口映射
docker port containerId