Ubuntu上如何使用Docker容器技术
小樊
37
2025-12-06 09:51:39
Ubuntu上使用Docker容器技术
一 安装与启动
- 更新软件包索引并安装依赖:
- sudo apt update
- sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
- 添加 Docker 官方 GPG 密钥(推荐 keyring 方式):
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 添加稳定版 APT 仓库(自动匹配系统代号,如 jammy、focal):
- echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装 Docker Engine 与 containerd:
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io
- 启动并设置开机自启:
- sudo systemctl start docker
- sudo systemctl enable docker
- 验证安装(应看到 “Hello from Docker!”):
- sudo docker run --rm hello-world
- 可选 免 sudo 使用:
- sudo usermod -aG docker $USER(需重新登录或重启会话生效)
二 核心概念与常用命令
- 核心概念
- 镜像 Images:应用的只读模板,包含运行环境与代码。
- 容器 Containers:镜像的运行实例,彼此隔离。
- 仓库 Registry:存放镜像的中心(如 Docker Hub)。
- 镜像与容器常用命令
- 搜索/拉取镜像:docker search nginx;docker pull nginx:latest
- 列出镜像:docker images
- 运行容器:docker run -d -p 8080:80 --name web nginx:latest
- 查看容器:docker ps;docker ps -a(含已停止)
- 进入容器:docker exec -it web bash
- 停止/启动/删除容器:docker stop web;docker start web;docker rm web
- 删除镜像:docker rmi <IMAGE_ID>
- 数据持久化与网络
- 数据卷(推荐):docker volume create data;docker run -d -v data:/app nginx
- 绑定挂载:docker run -d -v $PWD:/app nginx
- 网络:docker network ls;docker run -d --network bridge nginx
三 构建自定义镜像与运行示例
- 示例一 快速 Nginx
- 生成镜像:
- cat <<‘EOF’ > Dockerfile
FROM ubuntu:20.04
RUN apt update && apt install -y nginx && rm -rf /var/lib/apt/lists/*
EXPOSE 80
CMD [“nginx”, “-g”, “daemon off;”]
EOF
- docker build -t my-nginx:latest .
- 运行容器(主机端口 8080 映射到容器 80):
- docker run -d -p 8080:80 --name my-nginx-container my-nginx:latest
- 示例二 Python Web
- 生成镜像:
- cat <<‘EOF’ > Dockerfile
FROM python:3.8-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 80
CMD [“python”, “app.py”]
EOF
- docker build -t my-python-app .
- 运行容器(主机端口 4000 映射到容器 80):
- docker run -d -p 4000:80 my-python-app
四 多容器应用与日常维护
- 多容器应用(Docker Compose)
- 安装 Compose(Linux 常见方式):
- sudo apt update && sudo apt install -y docker-compose-plugin
- 示例 docker-compose.yml(以 Nginx 为例):
- version: “3.8”
services:
web:
image: nginx:latest
ports:
- “8080:80”
volumes:
- ./html:/usr/share/nginx/html
- 启动/停止:
- docker compose up -d
- docker compose down
- 日常维护与优化
- 资源限制:docker run -d --name app --cpus=“1.0” --memory=“512m” ubuntu sleep infinity
- 查看资源占用:docker stats
- 清理无用资源:docker system prune -a
- 镜像加速器(可选,编辑 /etc/docker/daemon.json):
- {
“registry-mirrors”: [“https://<你的加速器地址>”]
}
- 修改后执行:sudo systemctl restart docker
- 安全建议:尽量使用非 root用户运行容器内进程;选择最小化基础镜像;定期更新 Docker与镜像;对镜像进行漏洞扫描。