Docker容器基础 Docker简化应用部署和管理。 核心概念 镜像 容器 仓库 基本操作 镜像管理 容器操作 进入容器 Dockerfile 基本语法 最佳实践 构建镜像 数据管理 数据卷 挂载目录 网络配置 网络模式 创建网络 Docker Compose 基本使用 常用命令 实践建议 最小化镜像:使用alpine版本 安全加固:不要以root运行 资源限制:限制CPU和内存 健康检查:添加HEALTHCHECK 日志管理:配置日志驱动 Docker让应用部署变得简单高效。
Docker简化应用部署和管理。
只读模板 包含应用和依赖 分层存储
镜像的运行实例 隔离的运行环境 可写层
存储和分发镜像 Docker Hub:公共仓库 私有仓库:企业使用
# 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx:latest # 查看镜像 docker images # 删除镜像 docker rmi nginx
# 运行容器 docker run -d -p 80:80 --name web nginx # 查看容器 docker ps # 停止容器 docker stop web # 启动容器 docker start web # 删除容器 docker rm web
# 交互式进入 docker exec -it web bash # 查看日志 docker logs web # 查看详情 docker inspect web
# 基础镜像 FROM python:3.9 # 工作目录 WORKDIR /app # 复制文件 COPY requirements.txt . RUN pip install -r requirements.txt # 复制代码 COPY . . # 暴露端口 EXPOSE 8000 # 启动命令 CMD ["python", "app.py"]
使用官方基础镜像 合并RUN命令 利用缓存机制 添加.dockerignore
docker build -t myapp:1.0 .
# 创建卷 docker volume create mydata # 使用卷 docker run -v mydata:/data nginx
# 挂载主机目录 docker run -v /host/path:/container/path nginx # 只读挂载 docker run -v /host/path:/container/path:ro nginx
bridge:默认模式 host:使用主机网络 none:无网络 container:共享容器网络
# 创建网络 docker network create mynet # 连接容器 docker run --network mynet nginx # 容器间通信 docker run --name db --network mynet postgres docker run --network mynet --link db:database nginx
version: '3' services: web: build: . ports: - "8000:8000" depends_on: - db db: image: postgres:13 environment: POSTGRES_PASSWORD: secret volumes: - dbdata:/var/lib/postgresql/data volumes: dbdata:
# 启动服务 docker-compose up -d # 查看状态 docker-compose ps # 查看日志 docker-compose logs # 停止服务 docker-compose down
Docker让应用部署变得简单高效。