docker 命令速查表,包括 Dockerfile 和 Docker Compose 的内容

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

评论/留言