Docker 命令速查表,包括 Dockerfile 和 Docker Compose 的内容。
Docker 命令速查表
常用命令
命令 | 说明 | 示例 |
---|
docker run | 创建并启动一个新的容器 | docker run -d --name my_container nginx |
docker ps | 列出当前运行的容器 | docker ps |
docker ps -a | 列出所有容器(包括停止的) | docker ps -a |
docker stop | 停止一个运行中的容器 | docker stop my_container |
docker start | 启动一个已停止的容器 | docker start my_container |
docker restart | 重启一个容器 | docker restart my_container |
docker rm | 删除一个或多个容器 | docker rm my_container |
docker rmi | 删除一个或多个镜像 | docker rmi my_image |
docker images | 列出所有本地镜像 | docker images |
docker pull | 从远程仓库拉取镜像 | docker pull nginx |
docker push | 将镜像推送到远程仓库 | docker push my_image |
docker build | 使用 Dockerfile 构建镜像 | docker build -t my_image . |
docker tag | 为镜像添加标签 | docker tag my_image my_repo/my_image:latest |
docker exec | 在运行的容器中执行命令 | docker exec -it my_container sh |
docker logs | 查看容器的日志输出 | docker logs my_container |
docker inspect | 查看容器或镜像的详细信息 | docker inspect my_container |
docker rename | 重命名一个容器 | docker rename old_name new_name |
docker stats | 显示容器的实时资源使用情况 | docker stats |
docker top | 显示容器中运行的进程 | docker top my_container |
docker cp | 在容器和宿主机之间复制文件或目录 | docker cp my_file my_container:/path/to/destination |
docker commit | 将容器的当前状态提交为一个新的镜像 | docker commit my_container my_new_image |
网络相关命令
命令 | 说明 | 示例 |
---|
docker network create | 创建一个新的网络 | docker network create my_network |
docker network connect | 将容器连接到网络 | docker network connect my_network my_container |
docker network disconnect | 将容器从网络断开 | docker network disconnect my_network my_container |
docker network ls | 列出所有网络 | docker network ls |
docker network rm | 删除一个网络 | docker network rm my_network |
卷相关命令
命令 | 说明 | 示例 |
---|
docker volume create | 创建一个新的卷 | docker volume create my_volume |
docker volume ls | 列出所有卷 | docker volume ls |
docker volume inspect | 查看卷的详细信息 | docker volume inspect my_volume |
docker volume rm | 删除一个卷 | docker volume rm my_volume |
清理相关命令
命令 | 说明 | 示例 |
---|
docker system prune | 清理未使用的容器、镜像、网络和卷 | docker system prune |
docker container prune | 清理所有已停止的容器 | docker container prune |
docker image prune | 清理所有未使用的镜像 | docker image prune |
docker volume prune | 清理所有未使用的卷 | docker volume prune |
docker network prune | 清理所有未使用的网络 | docker network prune |
Dockerfile 基本写法
Dockerfile 是一个文本文件,包含了一系列的指令,用于构建 Docker 镜像。以下是 Dockerfile 的基本写法和说明。
Dockerfile 示例
# 基础镜像
FROM nginx:latest
# 维护者信息
MAINTAINER Your Name <your.email@example.com>
# 将本地文件复制到容器中
COPY ./html /usr/share/nginx/html
# 暴露端口
EXPOSE 80
# 容器启动时运行的命令
CMD ["nginx", "-g", "daemon off;"]
Dockerfile 指令说明
指令 | 说明 | 示例 |
---|
FROM | 指定基础镜像 | FROM nginx:latest |
MAINTAINER | 指定维护者信息 | MAINTAINER Your Name <your.email@example.com> |
COPY | 将本地文件复制到容器中 | COPY ./html /usr/share/nginx/html |
ADD | 类似于 COPY ,但支持远程文件和自动解压 | ADD http://example.com/file.zip / |
RUN | 在构建过程中运行命令 | RUN apt-get update && apt-get install -y curl |
EXPOSE | 声明容器运行时监听的端口 | EXPOSE 80 |
CMD | 容器启动时运行的命令 | CMD ["nginx", "-g", "daemon off;"] |
ENTRYPOINT | 设置容器启动时的默认命令 | ENTRYPOINT ["nginx", "-g", "daemon off;"] |
ENV | 设置环境变量 | ENV MY_VAR=value |
WORKDIR | 设置工作目录 | WORKDIR /app |
VOLUME | 创建一个挂载卷 | VOLUME /data |
构建镜像
docker build -t my_image .
运行容器
docker run -d --name my_container my_image
Docker Compose 基本写法
Docker Compose 是一个工具,用于定义和运行多容器的 Docker 应用。它使用 docker-compose.yml
文件来定义服务、网络和卷。
Docker Compose 示例
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- my_network
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: mypassword
networks:
- my_network
networks:
my_network:
driver: bridge
Docker Compose 指令说明
指令 | 说明 | 示例 |
---|
version | 指定 Compose 文件的版本 | version: '3' |
services | 定义服务 | services: |
image | 指定服务使用的镜像 | image: nginx |
ports | 映射端口 | ports: ["8080:80"] |
volumes | 挂载卷 | volumes: ["./html:/usr/share/nginx/html"] |
environment | 设置环境变量 | environment: [MYSQL_ROOT_PASSWORD=mypassword] |
networks | 定义网络 | networks: |
driver | 指定网络驱动 | driver: bridge |
使用 Docker Compose
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 查看服务状态
docker-compose ps