麒麟sp3离线安装docker,docker-compose,nginx记录

1,813 阅读3分钟

背景

很多单位,都开始用国产操作系统了,这次踩的坑就是麒麟sp3,简单记录下

查看系统环境

输入指令:

arch

得出结果:

image.png

一般会输出x86_64armel 、aarch64等。在选择对应软件版本时也要选择对应的架构。

image.png

提醒:下文中所有的版本都会是x86_64

docker相关

下载docker地址

download.docker.com/linux/stati…

指定docker版本

image.png

安装docker

下载后的docker文件上传至服务器根目录的home文件夹下

1.进入文件夹

cd /home

2.解压缩

tar -xzf docker-20.10.10.tgz

3.移动解压后的全部内容到/usr/bin/下

mv docker/* /usr/bin/

编译docker配置文件

1.编辑docker.service

vi /usr/lib/systemd/system/docker.service

2.复制以下代码到docker.service

[Unit]
 
Description=Docker Application Container Engine
 
Documentation=https://docs.docker.com
 
After=network-online.target firewalld.service
 
Wants=network-online.target
 
[Service]
 
Type=notify
 
ExecStart=/usr/bin/dockerd
 
ExecReload=/bin/kill -s HUP $MAINPID
 
LimitNOFILE=infinity
 
LimitNPROC=infinity
 
TimeoutStartSec=0
 
Delegate=yes
 
KillMode=process
 
Restart=on-failure
 
StartLimitBurst=3
 
StartLimitInterval=60s
 
 
[Install]
 
WantedBy=multi-user.target

3.添加docker.service文件的权限

chmod +x /usr/lib/systemd/system/docker.service     
systemctl daemon-reload

4.创建daemon.json

如果发现已经存在docker文件,直接进入docker文件夹内就行,无需新建

cd /etc
mkdir docker
cd docker
touch daemon.json
vi daemon.json

5.复制以下代码到daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

6.reload内容、启动docker、设置开机启动

systemctl daemon-reload
systemctl start docker
systemctl enable docker

验证docker安装

输入指令:docker -v 出现版本提示,说明安装成功

安装docker-compose

下载地址

github.com/docker/comp…

下载指定版本

image.png

下载后的docker文件上传至服务器根目录的home文件夹下

1.进入文件夹

cd /home

2.安装并分配权限

mv docker-compose-Linux-x86_64.docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

3.验证

docker-compose -v

image.png

nginx相关

下载地址

Docker Nginx下载地址:hub.docker.com/layers/libr…

可以通过OS/ARCH切换需要下载镜像的架构 image.png

安装nginx

在联网环境下,拉取nginx镜像

docker pull nginx:1.20.2

下载后,执行命令拷贝镜像到本地

docker save -o nginx1.20.2 nginx:stable-alpine

然后到指定的内外服务器加载nginx镜像

sudo docker load < nginx1.20.2

验证nginx

通过指令docker images查看docker环境下的镜像

image.png

查看容器内nginx版本

docker image inspect nginx:latest | grep -i version

docker启动问题

permission denied

Error response from daemon: failed to create task for container: 
failed to create shim task: OCI runtime create failed: 
container_linux.go:328: starting container process caused "permission denied": unknown

在systemd中查看docker服务是正常启动的,文件权限也没问题,多方查找问题无果,最后找文档发现,如果系统安装了podman,这是安装银河麒麟时的可选项,也是一款容器管理工具,有着很多和docker相似的功能,同时安装podman和docker,就会引发以上错误信息提示,卸载掉podman后docker容器就可以正常启动了。

大概意思守护进程被进程被占用了,卸载podman就行

卸载指令yum remove podman

参考资料

麒麟V10安装Docker、Docker-compose、Nginx

记录一次银河麒麟中的docker无法启动容器的问题

麒麟V10操作系统Kylin Linux Advanced Server release V10 (Lance)版本 docker run时报错permission denied

银河麒麟操作系统 v10 中离线安装 Docker