主题
Docker
Docker是一个开源的应用容器引擎,它可以让开发者打包应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
基本概念
- 容器:Docker的核心概念,它是轻量级、可移植的执行环境,用来运行应用程序及其依赖。
- 镜像:Docker镜像是创建容器的基础,类似虚拟机的快照,包含需要运行的程序、库、工具、配置文件等。
- 仓库:集中存放镜像的地方,可以理解为代码仓库,Docker Hub是最常用的公共仓库。
安装Docker
以Ubuntu系统为例,安装Docker可以通过以下命令:
bash
sudo apt-get update
sudo apt-get install docker.io运行Docker
确保Docker服务正在运行:
bash
# 启动docker
sudo systemctl start docker
# 开启开机启动docker
sudo systemctl enable docker镜像操作示例
- 拉取镜像:从Docker Hub获取Ubuntu镜像
bash
docker pull ubuntu- 查看本地镜像:
bash
docker images- 运行镜像:基于Ubuntu镜像启动一个容器,并进入交互式bash shell
bash
docker run -it ubuntu /bin/bashDocker容器操作
- 列出运行中的容器:
bash
docker ps退出容器:在容器的命令行中,输入
exit或按Ctrl+D后台运行容器:不进入容器直接启动
bash
docker run -d ubuntu sleep 3600Dockerfile
Dockerfile是一个文本文件,用于自动化构建镜像过程。示例:
dockerfile
# 使用官方 Ubuntu 镜像作为基础镜像
FROM ubuntu:latest
# 设置作者信息
LABEL maintainer="yourname@example.com"
# 更新apt源并安装Apache
RUN apt-get update && apt-get install -y apache2
# 将本地文件复制到容器中
COPY index.html /var/www/html/index.html
# 开放80端口
EXPOSE 80
# 启动Apache服务
CMD ["apachectl", "-DFOREGROUND"]构建镜像:
bash
docker build -t my-apache2 .运行基于此镜像的容器:
bash
docker run -d -p 8080:80 my-apache2Docker网络
Docker提供了几种网络模式,如bridge(默认)、host、none和自定义网络。创建自定义网络示例:
bash
docker network create my-net在创建容器时指定网络:
bash
docker run -d --network=my-net --name container1 nginx数据管理
为了持久化数据,推荐使用数据卷(volume)或绑定宿主机目录。
- 创建并使用数据卷
bash
docker volume create my-volume
docker run -d -v my-volume:/data --name container2 nginx- 绑定宿主机目录
bash
docker run -d -v $(pwd)/html:/usr/share/nginx/html --name container3 nginx镜像加速配置
在 CentOS 7 中设置 Docker 镜像源加速,编辑 /etc/docker/daemon.json:
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl restart docker下一步
Docker 基础到此为止。继续深入请阅读本模块其他文档:
- Docker 安装 — 各平台安装、镜像加速、免 sudo
- Dockerfile 编写 — 指令详解、多阶段构建、镜像瘦身
- Docker CLI 命令速查 — 镜像/容器/网络/卷全量命令
- Docker 网络 — bridge/host/overlay 与容器通信
- Docker 存储 — 数据卷与持久化
- Docker 镜像仓库 — Hub/私有仓/CNB 二级路径规范
- Docker 安全 — 非 root、镜像扫描、最小化
- Docker Compose — 多容器编排与生产级配置
- Docker Swarm — 集群编排实战
常用命令
bash
# 构建镜像
docker build -t myapp .
# 运行容器
docker run -p 3000:3000 myapp
# 查看容器
docker ps
# 查看日志
docker logs container_id
# 进入容器
docker exec -it container_id /bin/bash最佳实践
- 使用多阶段构建
- 最小化镜像大小
- 合理使用缓存
- 安全扫描
- 使用 .dockerignore 文件
- 避免在容器中运行不必要的进程