离线安装docker

背景描述

项目需要在研发环境虚拟机上安装docker部署应用。

所在的服务器是一个内网,无法访问到外网环境。

服务器OS版本是 麒麟V10 linux

安装docker

安装包下载

获取所需版本的docker binary包,官方链接https://download.docker.com/linux/static/stable/x86_64/.

我下载的是docker-26.1.4.tgz版本

解压压缩包,并把文件放在/usr/bin/

复制代码
tar -zxvf docker-26.1.4.tgz 
sudo cp docker/* /usr/bin/

新增用户组 docker。其他用户需要有docker的执行权限,只需将用户加入docker用户组即可

复制代码
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

编写docker.service文件,放到目录/etc/systemd/system

复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

启动docker service,并设置开机自启动

复制代码
$ sudo chmod +x /etc/systemd/system/docker.service
$ sudo systemctl daemon-reload
$ sudo systemctl start docker
$ sudo systemctl enable docker

验证

复制代码
 sudo systemctl status docker

使用docker ps命令报错

复制代码
[appadmin@iomapp ~]$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json": dial unix /var/run/docker.sock: connect: permission denied

检查是否将用户加入docker用户组,并且需要重新登录用户才能生效。

保存镜像进行打包,在另一台服务上使用

复制代码
docker save -o nginx_latestx86.tar  nginx:lastest

在另一台服务器上,docker加载tar包

复制代码
docker load -i nginx_latestx86.tar

测试启动nginx镜像,但是启动后访问nginx无反应参考

Docker:解决宿主机无法访问docker容器中nginx服务-CSDN博客

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏1 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心1 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing1 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅1 天前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)1 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang1 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github