一、启动
Linux
# 启动 Docker 服务
sudo systemctl start docker
# 设置 Docker 开机自启
sudo systemctl enable docker
# 检查 Docker 是否运行
sudo systemctl status docker
Windows
- 启动 Docker Desktop
二、镜像
镜像命令一般分两部分组成:repository:tag。比如 nginx:1.28.0,表示名称加版本。在没有指定 tag 时,默认是 latest,代表最新版本的镜像。
所有命令后面加上 --help 可查看帮助
1.检索
# 在 Docker Hub 查找镜像
docker search [OPTIONS] TERM
2.下载
# 从远程仓库下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
3.列表
# 别名:docker image ls, docker image list
docker images
4.删除
# 删除一个或多个镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
选项 [OPTIONS]:
# -f, --force: 强制删除该镜像
三、容器
1.运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
选项 [OPTIONS]:
# -d, --detach: 后台运行容器
# -e, --env: 设置环境变量
# --name: 给容器分配名称,默认分配随机名称
# --network: 将容器连接到指定网络
# -p, --publish [HOST_PORT]:[CONTAINER_PORT]: 将容器的端口发布到主机上
# --restart: 重启策略,默认: no, 自动重启: always
# -v, --volume [HOST_PATH]:[CONTAINER_PATH]: 挂载一个数据卷
端口示例 [-p]:
# 简单端口映射: docker run -p 8080:80 nginx
# 指定IP地址: docker run -p 192.168.0.1:8080:80 nginx
# 随机主机端口: docker run -p 80 nginx
# 映射多个端口: docker run -p 8080:80 -p 8443:443 nginx
数据卷示例 [-v]:
# 目录挂载: docker run -v /主机目录:/容器目录 镜像名
# 数据卷挂载: docker run -v 卷名:/容器目录 镜像名
2.查看
docker ps [OPTIONS]
选项 [OPTIONS]:
# -a, --all: 显示所有容器,默认显示运行中的容器
# -q, --quiet: 只显示容器IDs
3.停止
docker stop [OPTIONS] CONTAINER [CONTAINER...]
4.启动
docker start [OPTIONS] CONTAINER [CONTAINER...]
5.重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
6.状态
docker stats [OPTIONS] [CONTAINER...]
7.日志
docker logs [OPTIONS] CONTAINER
8.进入
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
9.删除
docker rm [OPTIONS] CONTAINER
选项 [OPTIONS]:
# -f, --force: 强制删除运行中的容器
四、分享
1.提交
# 描述:从容器的更改创建新镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
选项 [OPTIONS]:
# -m, --message: 提交信息
2.保存
docker save [OPTIONS] IMAGE [IMAGE...]
3.加载
docker load [OPTIONS]
4.登录
docker login [OPTIONS] [SERVER]
5.命名
# 创建一个目标镜像标签,使其指向源镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
6.推送
# 上传镜像到远程仓库
docker push [OPTIONS] NAME[:TAG]
五、存储
1.列表
docker volume ls [OPTIONS]
2.创建
docker volume create [OPTIONS] [VOLUME]
3.详情
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
4.删除
docker volume rm [OPTIONS] VOLUME [VOLUME...]
选项 [OPTIONS]:
# -f, --force: 强制删除运行中的数据卷
六、网络
1.列表
docker network ls
2.创建
docker network create
3.详情
docker network inspect
4.删除
docker network rm
七、Compose
compose通过一个配置文件来定义和编排多个容器的应用,详情参考官方文档。下图是文件可包含的顶级元素:
1.创建并启动
docker compose up [OPTIONS] [SERVICE...]
2.停止并删除
docker compose down [OPTIONS] [SERVICE...]
3.启动
docker compose start [SERVICE...]
4.停止
docker compose stop [OPTIONS] [SERVICE...]
八、Dockerfile
1.常见指令:
FROM: 指定镜像基础环境
RUN: 运行自定义命令
CMD: 容器启动命令或参数
LABEL: 自定义标签
EXPOSE: 指定暴露端口
ENV: 环境变量
COPY: 复制文件到镜像
ENTRYPOINT: 容器固定启动命令
VOLUME: 数据卷
更多详情参考官方文档
2.build 命令
# 构建镜像
# PATH: 目录层级,例如 . 或者 ./ 表示当前目录
docker build [OPTIONS] PATH | URL | -
选项 [OPTIONS]:
# -f, --file: Dockerfile的名称(默认: "PATH/Dockerfile")
# -t, --tag: 镜像名(名称和可选的标签)