在深度Deepin 15.11系统中安装Docker和Docker Compose的方法

本文为你带来在深度Deepin 15.11操作系统中安装Docker和Docker Compose的方法,仅限Deepin 15.11版本,其它版本未测试。

安装Docker

先卸载老版本的docker,没安装过docker的可以直接跳过该步骤:

$ sudo apt-get update

$ sudo apt-get remove docker docker-ce docker-engine docker.io containerd.io runc

下载最新版本Docker软件包:https://download.docker.com/linux/static/stable/x86_64/

在深度Deepin 15.11系统中安装Docker和Docker Compose的方法

推荐选择19.x以上版本,允许非 root 用户运行守护程序,启用 Rootless 模式可以防止攻击者通过错误的Docker设置和漏洞夺取主机的 root 权限而破坏系统。

将下载包解压到系统目录:

$ tar xzvf /path/to/<FILE>.tgz

$ sudo mv docker/* /usr/bin/

这种不受包管理系统管理的文件我一般是安置到/opt/pkgname,然后通过设置系统环境变量来指定运行path。但是我尝试了几次,在设置systemd服务启动时没能成功,原因是systemd找不到containerd的路径。所以暂且放置到官方推荐的/usr/bin目录下。以后没事再来找原因了。如果你想要方便以后卸载,你可以将你复制进去的文件列份备忘清单保存好,然后按清单删除文件就卸载了。详情看卸载部分。

添加系统用户组:

这样可以允许非 root 用户运行守护程序:

$ sudo groupadd docker

$ sudo usermod -aG docker $USER

$ newgrp docker 

验证一下是否安装成功:

$ docker --version

Docker version 19.03.5, build 633a0ea838

配置Docker服务

Docker是C\S架构,我们需要配置一个服务来启动S端。

添加国内镜像:

新增一个配置文件/etc/docker/daemon.json,编辑如下内容:

{

"registry-mirrors": ["https://registry.docker-cn.com"]

}

配置系统服务:

deepin 基于systemd来管理服务。

新增/usr/lib/systemd/system/docker.socket

[Unit]

Description=Docker Socket for the API

PartOf=docker.service

[Socket]

ListenStream=/var/run/docker.sock

SocketMode=0660

SocketUser=root

SocketGroup=docker

[Install]

WantedBy=sockets.target

新增/usr/lib/systemd/system/docker.service

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target docker.socket firewalld.service

Wants=network-online.target

Requires=docker.socket

[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 -H fd://

ExecReload=/bin/kill -s HUP $MAINPID

LimitNOFILE=1048576

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

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

注意分配好文件权限:

$ chmod 644 /usr/lib/systemd/system/docker* 

启动服务:

$ systemctl start docker

验证服务是否正常:

$ docker run hello-world

设置开机启动服务(可选):

$ systemctl enable docker

卸载如果你不想用docker了,可以完全卸载掉:

$ systemctl disable dockr

$ systemctl stop dockr$ sudo cd /usr/bin

$ sudo rm containerd  containerd-shim  ctr  docker  dockerd  docker-init  docker-proxy  runc

$ sudo rm -rf /etc/docker/

$ sudo rm  /usr/lib/systemd/system/docker*

安装Docker Compose

使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。

到官方仓库下载与已安装docker版本配套的最新版,到github下载时,一定要开启wget的断点续传功能下载:

$ sudo wget -c -t 0 https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -O /usr/local/bin/docker-compose

添加执行权限:

sudo chmod a+rx /usr/local/bin/docker-compose

验证是否安装成功:

$ docker-compose -v

docker-compose version 1.25.1, build a82fef07

卸载:

$ sudo rm /usr/local/bin/docker-compose

栏目相关文章