本文原创转自linuxdo论坛,链接为https://linux.do/t/topic/380396,如不合适可联系删除
Docker 是一种开源的容器化平台,用于开发、部署和运行应用程序。它通过将应用程序及其依赖项打包到一个轻量级、可移植的容器中,实现了跨环境的一致性。
在生产环境中,服务器一般是在内网环境下,所以我这里介绍离线安装docker。
下载docker压缩包
1. 按需选择服务器架构
https://download.docker.com/linux/static/stable/
#通过uanme -m查看服务器架构
[root@localhost ~]# uname -m
x86_64
2.下载
我这里是x86_64,然后下载了当前最新的docker版本27.5.0,地址:
https://download.docker.com/linux/static/stable/x86_64/docker-27.5.0.tgz
安装docker
1.上传docker压缩包到服务器
[root@localhost opt]# ls
docker-27.5.0.tgz
2.解压docker压缩包
[root@localhost opt]# tar -zxvf docker-27.5.0.tgz
docker/
docker/runc
docker/containerd
docker/docker-init
docker/dockerd
docker/containerd-shim-runc-v2
docker/docker-proxy
docker/docker
docker/ctr
[root@localhost opt]# ls
docker docker-27.5.0.tgz
3.将docker可执行文件移动到环境变量路径
#通过该命令可以看到当前的环境变量
[root@localhost opt]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
我们一般会将非系统自带的可执行文件放到/usr/local/bin/目录下。
[root@localhost opt]# mv docker/* /usr/local/bin/
4.使用systemd管理docker服务
创建服务文件docker.service
cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target
[Service]
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=512
TimeoutSec=0
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
EOF
重新加载服务配置文件
systemctl daemon-reload
启动docker服务
systemctl start docker
开机自启docker服务
systemctl enable docker
安装docker compose
1.下载地址
https://github.com/docker/compose/releases
从这里找到适合自己操作系统的包,我下的是docker-compose-linux-x86_64
https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-linux-x86_64
2.上传到服务器
[root@localhost opt]# ls docker-compose-linux-x86_64
docker-compose-linux-x86_64
3.移动到docker插件目录下
[root@localhost opt]# mkdir -p /usr/local/lib/docker/cli-plugins/
[root@localhost opt]# chmod +x docker-compose-linux-x86_64
[root@localhost opt]# mv docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose
4.验证
[root@localhost opt]# docker compose version
Docker Compose version v2.32.4
配置国内mirror
由于国内将dockerhub墙了,所以我们需要配置国内的mirror
1.这里使用的是DaoCloud mirror
https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file
2.配置docker使用该mirror
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
3.重启docker服务
systemctl restart docker
4.验证
[root@localhost opt]# docker info | tail -5
Registry Mirrors:
https://docker.m.daocloud.io/ #这里就是刚刚配置的镜像站
Live Restore Enabled: false
Product License: Community Engine
拉镜像(还是不能搜索镜像)
[root@localhost opt]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
af302e5c37e9: Pull complete
207b812743af: Pull complete
841e383b441e: Pull complete
0256c04a8d84: Pull complete
38e992d287c5: Pull complete
9e9aab598f58: Pull complete
4de87b37f4ad: Pull complete
Digest: sha256:0a399eb16751829e1af26fea27b20c3ec28d7ab1fb72182879dcae1cca21206a
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 9bea9f2796e2 7 weeks ago 192MB
配置docker代理,直接访问dockerhub(和上一步二选一即可)
1.首先需要删除我们上面配置的国内mirror
我这里直接删了daemon.json,因为配置文件里只配置了mirror,按实际情况来。
rm -rf /etc/docker/daemon.json
2.创建docker 的 systemd 子配置文件
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf << EOF
> [Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
> EOF
NO_PROXY:这里对应的是不需要代理的地址
3.重载服务配置文件、重启服务
systemctl daemon-reload && systemctl restart docker
这样就配置好了docker代理,如果有条件还是更推荐配置代理这种方式去拉取镜像
总结
本文主要介绍了离线安装、配置docker,后面我会继续分享docker相关的知识,如果觉得有用可以关注一下公众号:运维张三。