温馨提示×

如何在ubuntu上利用docker搭建开发环境

小樊
54
2025-09-06 17:54:27
栏目: 智能运维

以下是在Ubuntu上利用Docker搭建开发环境的步骤:

一、安装Docker

  1. 更新系统:sudo apt update && sudo apt upgrade -y
  2. 安装依赖:sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
  3. 添加Docker官方GPG密钥:
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 配置软件源:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
  5. 安装Docker:sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
  6. 启动服务并设置开机自启:
    sudo systemctl start docker && sudo systemctl enable docker
  7. 验证安装:docker --version

二、配置Docker(可选)

  • 添加用户权限(避免每次用sudo):
    sudo usermod -aG docker $USER,然后重新登录生效。
  • 配置镜像加速(国内推荐):
    编辑/etc/docker/daemon.json,添加清华镜像源:
    {"registry-mirrors": ["https://docker.mirrors.tuna.tsinghua.edu.cn"]},重启Docker:sudo systemctl restart docker

三、搭建开发环境

方案1:使用Docker Compose(推荐)

  1. 在项目目录创建docker-compose.yml文件,定义服务(如Web、数据库):
    version: '3.9'
    services:
      web:
        image: nginx:latest
        ports:
          - "8080:80"
        volumes:
          - ./html:/usr/share/nginx/html
      db:
        image: mysql:8.0
        environment:
          MYSQL_ROOT_PASSWORD: "123456"
        ports:
          - "3306:3306"
    
  2. 启动环境:docker-compose up -d
  3. 验证:docker ps查看容器状态,通过localhost:8080访问服务。

方案2:手动构建镜像

  1. 编写Dockerfile(以Python为例):
    FROM python:3.9
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install -r requirements.txt
    COPY . .
    CMD ["python", "app.py"]
    
  2. 构建镜像:docker build -t my-python-app .
  3. 运行容器:docker run -d -p 5000:5000 my-python-app

四、常用操作

  • 查看容器日志docker logs <容器ID>
  • 进入容器docker exec -it <容器ID> /bin/bash
  • 停止容器docker stop <容器ID>
  • 删除容器docker rm <容器ID>

五、注意事项

  • 多容器环境建议使用Docker Compose管理,避免手动操作复杂性。
  • 生产环境需注意数据持久化(挂载卷)和资源限制(CPU/内存)。

0