前提条件
- 拥有一台服务器,自己本地或者使用云上的服务器都可以,本文以阿里云服务器为例;
- 登录服务器,通过账号密码或者其他方式远程连接服务器;
- 镜像加速地址,阿里云的ACR镜像仓库控制台即可找到,或者使用其他开源加速地址。
安装docker
方式一:
# 安装Docker的依赖库。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#添加Docker CE的软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装并更新 Docker CE
sudo yum makecache fast
sudo yum -y install docker-ce
#启动Docker服务
sudo systemctl start docker
# 重新加载服务配置文件
sudo systemctl daemon-reload
# 重启Docker服务
sudo systemctl restart docker
方式二
如果您使用的是非阿里云服务器,请将http://mirrors.cloud.aliyuncs.com替换为https://mirrors.aliyun.com。
#添加Docker软件包源
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
#Alibaba Cloud Linux3专用的dnf源兼容插件
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker
配置镜像源
当Docker Hub镜像拉取受网络影响时,可配置Docker镜像源提升速度。但请注意,镜像源配置不适用于docker search命令,因为它直接查询Docker Hub。
加速器地址可以再ACR控制台找到,选择对应的操作系统
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
添加完成后重启
sudo systemctl daemon-reload
sudo systemctl restart docker
安装校验
执行命令能看到安装的版本
[root@iZj6c6bwfahd5p0ux2f8eyZ ~]# docker version
Client: Docker Engine - Community
Version: 26.1.3
API version: 1.45
Go version: go1.21.10
Git commit: b72abbb
Built: Thu May 16 08:34:39 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 26.1.3
API version: 1.45 (minimum version 1.24)
Go version: go1.21.10
Git commit: 8e96db1
Built: Thu May 16 08:33:34 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.32
GitCommit: 8b3b7ca2e5ce38e8f31a34f35b2b68ceb8470d89
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
旧版本卸载
安装之前需要确认旧版本已经卸载,卸载命令参考:
#删除Docker相关源
sudo rm -f /etc/yum.repos.d/docker*.repo
#卸载Docker和相关的软件包
sudo dnf -y remove \
docker-ce \
containerd.io \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-ce-cli \
docker-compose-plugin
实践–创建Web程序镜像
- 以下是创建基于Nginx镜像的简单Web程序镜像。
构建Web程序镜像。
#拉取Nginx镜像
sudo docker pull nginx:latest
#创建Dockerfile设置Nginx作为基础镜像,并在Web服务器的根目录创建一个显示Hello World!的index.html文件。
sudo tee Dockerfile <<-'EOF'
FROM nginx:latest
RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
EOF
#构建镜像,镜像名称为hello-world
sudo docker build . -t hello-world:latest
- 启动Web程序镜像的容器,并且命名容器名称为
hello-world
。
sudo docker run -d -p 80:80 --name hello-world hello-world:latest
- 执行
curl http://localhost
命令,验证Web程序是否正确显示Hello World!
。