Docker学习路线9:运行容器


Docker 学习路线 9:运行容器

运行 Docker 容器是 Docker 使用的核心,掌握如何高效地运行和管理容器是每个 Docker 用户的必备技能。以下是运行 Docker 容器的详细指南。

一、基本命令

  1. docker run

    • 启动一个新的容器:
      docker run -d --name <container_name> <image_name>:<tag>
      
    • 选项说明:
      • -d:后台运行容器。
      • --name:指定容器名称。
  2. docker ps

    • 查看正在运行的容器:
      docker ps
      
  3. docker ps -a

    • 查看所有容器,包括已停止的:
      docker ps -a
      
  4. docker stop

    • 停止运行中的容器:
      docker stop <container_name>
      
  5. docker start

    • 启动已停止的容器:
      docker start <container_name>
      
  6. docker restart

    • 重启容器:
      docker restart <container_name>
      
  7. docker rm

    • 删除已停止的容器:
      docker rm <container_name>
      
  8. docker logs

    • 查看容器日志:
      docker logs <container_name>
      

二、端口映射和网络

  1. 端口映射

    • 将容器端口映射到宿主机端口:
      docker run -d -p <host_port>:<container_port> <image_name>:<tag>
      
    • 示例:
      docker run -d -p 8080:80 nginx
      
  2. 查看端口映射

    • 使用 docker port 查看容器的端口映射:
      docker port <container_name>
      
  3. 自定义网络

    • 创建自定义网络:
      docker network create <network_name>
      
    • 启动容器并连接到自定义网络:
      docker run -d --network <network_name> --name <container_name> <image_name>:<tag>
      

三、挂载卷和持久化数据

  1. 挂载主机目录

    • 挂载主机目录到容器:
      docker run -d -v <host_dir>:<container_dir> <image_name>:<tag>
      
    • 示例:
      docker run -d -v /host/data:/container/data nginx
      
  2. 使用数据卷

    • 创建数据卷:
      docker volume create <volume_name>
      
    • 挂载数据卷到容器:
      docker run -d -v <volume_name>:<container_dir> <image_name>:<tag>
      
  3. 查看数据卷

    • 查看所有数据卷:
      docker volume ls
      
  4. 删除数据卷

    • 删除数据卷:
      docker volume rm <volume_name>
      

四、环境变量和配置

  1. 设置环境变量

    • 在运行容器时设置环境变量:
      docker run -d -e <ENV_VAR_NAME>=<value> <image_name>:<tag>
      
  2. 使用环境变量文件

    • 将环境变量存储在文件中,并在运行容器时加载:
      docker run -d --env-file <file_path> <image_name>:<tag>
      

五、资源限制

  1. 限制内存

    • 限制容器使用的内存:
      docker run -d --memory="512m" <image_name>:<tag>
      
  2. 限制 CPU

    • 限制容器使用的 CPU:
      docker run -d --cpus="1.5" <image_name>:<tag>
      

六、交互式容器

  1. 运行交互式容器

    • 启动交互式容器,进入容器终端:
      docker run -it --name <container_name> <image_name>:<tag> /bin/bash
      
  2. 重新进入容器终端

    • 使用 docker exec 进入运行中的容器终端:
      docker exec -it <container_name> /bin/bash
      

七、容器编排

  1. Docker Compose

    • 使用 Docker Compose 定义和运行多容器应用。
    • 编写 docker-compose.yml 文件:
      version: '3'
      services:
        web:
          image: nginx
          ports:
            - "8080:80"
        db:
          image: postgres
          environment:
            POSTGRES_PASSWORD: example
      
    • 启动所有服务:
      docker-compose up -d
      
  2. Docker Swarm

    • 使用 Docker Swarm 进行容器编排和集群管理。
    • 初始化 Swarm 集群:
      docker swarm init
      
    • 创建服务:
      docker service create --name <service_name> --replicas <num_replicas> <image_name>:<tag>
      

八、故障排除和调试

  1. 查看容器状态

    • 查看容器的详细状态信息:
      docker inspect <container_name>
      
  2. 检查容器网络

    • 查看容器的网络配置:
      docker network inspect <network_name>
      
  3. 容器资源使用情况

    • 查看容器的资源使用情况(CPU、内存等):
      docker stats
      
  4. 调试容器

    • 使用 docker exec 进入容器终端,检查和调试问题:
      docker exec -it <container_name> /bin/bash
      

通过以上步骤和最佳实践,您可以有效地运行和管理 Docker 容器,为应用程序提供稳定和高效的运行环境。掌握 Docker 容器运行的各个方面,将显著提升您的容器化应用部署和管理的效率。


原文链接:codingdict.net