首页>软件资讯>常见问题

常见问题

docker离线安装

发布时间:2025-05-07 12:08:40人气:75

Docker 是一种开源的容器化平台,用于开发、部署和运行应用程序。它通过将应用程序及其依赖项打包到一个轻量级、可移植的容器中,实现了跨环境的一致性。


在生产环境中,服务器一般是在内网环境下,所以我这里介绍离线安装docker。


下载docker压缩包

1. 按需选择服务器架构


#通过uanme -m查看服务器架构

[root@localhost ~]# uname -m

x86_64

服务器架构.jpg

2.下载

下载.png


我这里是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

• http://proxy.example.com:8080/:改成实际的代理节点ip和端口


• NO_PROXY:这里对应的是不需要代理的地址


3.重载服务配置文件、重启服务

systemctl daemon-reload && systemctl restart docker

这样就配置好了docker代理,如果有条件还是更推荐配置代理这种方式去拉取镜像



上一条:如何使用Docker exec命令

下一条:MongoDB介绍及运维指南