Docker 通过 Linux Container 技术将应用变为标准化、可移植、自管理的组件,实现 “一次构建,到处运行”。特点:快速发布、部署简单、管理方便,应用密度更高。
Docker 引擎 有两个版本:EE 企业版 CE 社区版。每季度发布稳定版,CE 支持 4 个月,EE 支持 12 个月。
Linux 安装 (内核 ≥ 3.10)
# 下载 repo 文件 (注意 -O 大写字母O) wget -O /etc/yum.repos.d/docker.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 修改系统版本 sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker.repo # 安装 docker-ce yum -y install docker-ce # 查看可用版本并安装指定版本 dnf list docker-ce --showduplicates | sort -r dnf install docker-ce-<VERSION> docker-ce-cli-<VERSION> containerd.io
离线安装:从 https://download.docker.com/linux/static/stable/x86_64/ 下载 tgz,解压并复制到 /usr/bin/,后台运行 nohup dockerd &
国内访问 Docker Hub 较慢,建议配置加速器。创建 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://1ms.run",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://iju9kaj2.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://cr.console.aliyun.com",
"https://hub.docker.com",
"http://mirrors.ustc.edu.cn"
]
}
然后执行 systemctl daemon-reload && systemctl restart docker
Docker Hub 官方仓库:https://hub.docker.com。拉取示例:
# 拉取官方最新 ubuntu docker pull ubuntu # 拉取指定版本 docker pull ubuntu:18.04 # 私有仓库 docker pull myusername/nginx:latest # 阿里云镜像 docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest
# 运行 nginx docker run nginx # 常用选项:--name, -d 后台, -it 交互, -p 端口映射 docker run -d --name mynginx -p 8080:80 nginx:1.24.0 # 查看运行中的容器 docker ps docker ps -a # 所有容器 docker ps -aq # 仅 ID # 进入容器 (新终端) docker exec -it mynginx bash # 退出: exit # 删除容器 docker rm -f mynginx docker rm -f $(docker ps -aq) # 删除所有
docker container inspect 查看容器细节。
Docker 启动的时候会自动创建 bridge、host、none 三种网络。
# -P 随机映射 49000~49900 端口 docker run -d -P nginx # -p 指定映射 docker run -d -p 2025:80 nginx # 查看端口映射 docker ps -l
# 创建网络 docker network create --driver bridge --subnet 172.30.0.0/16 --gateway 172.30.0.1 appnet # 使用自定义网络,容器间可通过容器名通信 docker run -d --network appnet --name app1 nginx
数据卷将容器内目录挂载到宿主机,实现数据持久化,独立于容器生命周期。支持宿主机与容器间实时同步,多容器共享。
# 绑定挂载 (-v) docker run -d -p 2025:80 -v /web/html:/usr/share/nginx/html --name nginx03 nginx # 卷映射 (volume mount) docker run -d -p 2025:80 -v /web/html:/usr/share/nginx/html -v ngconf:/etc/nginx --name nginx03 nginx
# 更新系统,添加 docker 源
yum -y update
yum config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
yum makecache
yum -y install docker-ce-26.1.4
参考第二章加速配置,重启 docker。
# 创建自定义网络 docker network create prestashop-network # 启动 MySQL 5.7 docker run -d \ --name prestashop-mysql \ --network prestashop-network \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=prestashop \ -e MYSQL_USER=psuser \ -e MYSQL_PASSWORD=123456 \ --default-authentication-plugin=mysql_native_password \ mysql:5.7 # 启动 PrestaShop (8.2.1) docker run -d \ --name prestashop \ --network prestashop-network \ -p 8080:80 \ -e DB_SERVER=prestashop-mysql \ -e DB_NAME=prestashop \ -e DB_USER=psuser \ -e DB_PASSWORD=123456 \ docker.1ms.run/prestashop/prestashop:latest
浏览器访问 http://服务器IP:8080 进行初始化配置,按引导完成安装。