背景
很多单位,都开始用国产操作系统了,这次踩的坑就是麒麟sp3,简单记录下
查看系统环境
输入指令:
bash
arch
得出结果:
一般会输出x86_64
、armel
、aarch64
等。在选择对应软件版本时也要选择对应的架构。
提醒:下文中所有的版本都会是x86_64
docker相关
下载docker地址
download.docker.com/linux/stati...
指定docker版本
安装docker
下载后的docker文件上传至服务器根目录的home文件夹下
1.进入文件夹
bash
cd /home
2.解压缩
tar -xzf docker-20.10.10.tgz
3.移动解压后的全部内容到/usr/bin/下
bash
mv docker/* /usr/bin/
编译docker配置文件
1.编辑docker.service
bash
vi /usr/lib/systemd/system/docker.service
2.复制以下代码到docker.service
ini
[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文件的权限
bash
chmod +x /usr/lib/systemd/system/docker.service
systemctl daemon-reload
4.创建daemon.json
如果发现已经存在docker文件,直接进入docker文件夹内就行,无需新建
bash
cd /etc
mkdir docker
cd docker
touch daemon.json
vi daemon.json
5.复制以下代码到daemon.json
json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
6.reload内容、启动docker、设置开机启动
bash
systemctl daemon-reload
systemctl start docker
systemctl enable docker
验证docker安装
输入指令:docker -v
出现版本提示,说明安装成功
安装docker-compose
下载地址
下载指定版本
下载后的docker文件上传至服务器根目录的home文件夹下
1.进入文件夹
bash
cd /home
2.安装并分配权限
bash
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
docker启动问题
permission denied
sql
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
麒麟V10操作系统Kylin Linux Advanced Server release V10 (Lance)版本 docker run时报错permission denied