插件窝 干货文章 聊聊Linux系统中使用Docker的方法

聊聊Linux系统中使用Docker的方法

Docker bash 容器 container 382    来源:    2025-04-30

在Linux系统中使用Docker是一项关键技能,它能显著提升开发、测试和部署的效率。以下是详细的使用指南:

一、安装Docker

  1. 卸载旧版本(如有):

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. 设置仓库

    sudo apt-get update
    sudo apt-get install \
     ca-certificates \
     curl \
     gnupg \
     lsb-release
    
  3. 添加官方GPG密钥

    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
  4. 设置稳定版仓库

    echo \
     "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  5. 安装Docker引擎

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  6. 验证安装

    sudo docker run hello-world
    

二、基本操作命令

  1. 镜像管理

    docker pull ubuntu:20.04          # 拉取镜像
    docker images                     # 列出镜像
    docker rmi <image_id>             # 删除镜像
    
  2. 容器操作

    docker run -it ubuntu:20.04 bash  # 启动交互式容器
    docker ps                         # 查看运行中的容器
    docker ps -a                      # 查看所有容器
    docker stop <container_id>        # 停止容器
    docker start <container_id>       # 启动已停止的容器
    docker rm <container_id>          # 删除容器
    
  3. 网络管理

    docker network ls                 # 列出网络
    docker network inspect bridge     # 查看网络详情
    

三、数据持久化

  1. 挂载主机目录

    docker run -v /host/path:/container/path ubuntu
    
  2. 使用数据卷

    docker volume create my_vol
    docker run -v my_vol:/container/path ubuntu
    

四、Docker Compose

  1. 安装

    sudo apt install docker-compose-plugin
    
  2. 示例docker-compose.yml

    version: '3'
    services:
     web:
       image: nginx
       ports:
         - "80:80"
     db:
       image: mysql
       environment:
         MYSQL_ROOT_PASSWORD: example
    
  3. 常用命令

    docker compose up -d      # 启动服务
    docker compose down       # 停止服务
    docker compose logs       # 查看日志
    

五、安全最佳实践

  1. 非root用户操作

    sudo usermod -aG docker $USER
    newgrp docker
    
  2. 镜像安全扫描

    docker scan <image_name>
    
  3. 资源限制

    docker run -it --cpus="1.5" --memory="512m" ubuntu
    

六、调试技巧

  1. 进入运行中的容器

    docker exec -it <container_id> bash
    
  2. 查看容器日志

    docker logs <container_id>
    
  3. 检查容器配置

    docker inspect <container_id>
    

七、进阶功能

  1. 多阶段构建(Dockerfile示例):

    FROM golang:1.16 AS builder
    WORKDIR /app
    COPY . .
    RUN go build -o myapp .
    
    FROM alpine:latest
    COPY --from=builder /app/myapp .
    CMD ["./myapp"]
    
  2. 使用Docker Swarm

    docker swarm init
    docker service create --replicas 3 -p 80:80 --name nginx nginx
    
  3. 连接容器网络

    docker network create my_network
    docker run --network=my_network --name container1 my_image
    docker run --network=my_network --name container2 my_image
    

常见问题解决方案

  1. 权限拒绝错误

    sudo chmod 666 /var/run/docker.sock
    
  2. 端口冲突

    netstat -tulnp | grep <port>
    kill <pid>
    
  3. 磁盘空间不足

    docker system prune -a
    

通过掌握这些Docker操作,您可以在Linux系统中高效地构建、部署和管理容器化应用。建议定期备份重要数据,并保持Docker版本更新以获得最新功能和安全补丁。