docker 安装
1
2
3
4
5
6
7
8
9
10
| # sudoers
curl -sSL get.docker.com | DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sudo -E bash
wget -qO- get.docker.com | DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sudo -E bash
# root
curl -sSL get.docker.com | DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce bash
wget -qO- get.docker.com | DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce bash
## Deprecated
#curl -sSL get.docker.com | sudo bash -s -- --mirror Aliyun
# 或者使用 wget
#wget -qO- get.docker.com | sudo bash -s -- --mirror Aliyun
|
docker-compose安装
通过apt安装的docker-compose版本太老,所以还是使用官网的方式安装。
下载
1
| sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
添加可执行权限
1
| sudo chmod +x /usr/local/bin/docker-compose
|
添加bash-completion(可选)
1
2
3
| sudo curl \
-L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \
-o /usr/share/bash-completion/completions/docker-compose
|
https://docs.docker.com/compose/install/#install-compose-on-linux-systems
https://docs.docker.com/compose/completion/#install-command-completion
使用 namespace remap
配置
首先需要修改 /etc/subuid 和 /etc/subgid,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| $ sudo vi /etc/subuid
------------
# 修改前
user0:100000:65536
------------
# 修改后
# 1000 代表 user0 的 uid
user0:1000:1
user0:100000:65536
------------
=================
$ sudo vi /etc/subgid
------------
# 修改前
user0:100000:65536
------------
# 修改后
# 1000 代表 user0 的 gid
user0:1000:1
user0:100000:65536
------------
|
然后需要修改 docker 的 daemon.json
1
2
3
4
5
6
| $ sudo vi /etc/docker/daemon.json
-----------------------------
{
"userns-remap": "user0:user0"
}
------------------------------
|
最后,重启 docker 服务
1
| sudo service docker restart
|
docker 重启后,便可以在 /var/lib/docker 中看到名为 1000.1000 的目录。
临时禁用
如果某个 container 需要使用 privileged ,那么可以再加上 --userns=HOST, 单独对这个 container 禁用 namespace remap。
https://echorand.me/posts/docker-user-namespacing-remap-system-user/
https://github.com/moby/moby/issues/17409
https://github.com/moby/moby/pull/20111