Docker是一种容器化平台,允许你将应用程序及其依赖项打包到一个轻量级、可移植的容器中。主要组件包括:
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版仓库
echo "deb [arch=amd64 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引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker run hello-world
下载并安装Docker Desktop
# 查看Docker版本
docker --version
# 列出本地镜像
docker images
# 从Docker Hub拉取镜像
docker pull [镜像名]:[标签]
# 运行容器
docker run [选项] [镜像名]
# 列出运行中的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 停止容器
docker stop [容器ID/名称]
# 启动已停止的容器
docker start [容器ID/名称]
# 删除容器
docker rm [容器ID/名称]
# 删除镜像
docker rmi [镜像ID/名称]
示例Dockerfile:
# 使用官方Python运行时作为基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 将当前目录内容复制到容器的/app目录
COPY . /app
# 安装requirements.txt中指定的依赖
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# 暴露端口
EXPOSE 80
# 定义环境变量
ENV NAME World
# 容器启动时运行app.py
CMD ["python", "app.py"]
构建镜像:
docker build -t my-python-app .
# 创建自定义网络
docker network create my-network
# 运行容器并连接到网络
docker run --network=my-network --name my-container -d my-app
# 查看网络详情
docker network inspect my-network
# 创建卷
docker volume create my-volume
# 运行容器并挂载卷
docker run -v my-volume:/data --name my-container my-app
# 使用绑定挂载(主机目录)
docker run -v /host/path:/container/path my-app
示例docker-compose.yml:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
常用命令:
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 查看服务状态
docker-compose ps
# 构建或重新构建服务
docker-compose build
# 查看容器日志
docker logs [容器ID/名称]
# 实时查看日志
docker logs -f [容器ID/名称]
# 查看容器资源使用情况
docker stats
# 进入运行中的容器
docker exec -it [容器ID/名称] /bin/bash
通过掌握这些Docker基础知识,你可以有效地部署和管理容器化应用程序,提高开发效率和系统可靠性。