安装Docker
# 安装Docker
安装 Docker Engine-Community
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动service docker start
开机自启systemctl enable docker
删除安装包yum remove docker-ce
删除镜像容器配置文件rm -rf /var/lib/docker
# 配置监听端口
vi /lib/systemd/system/docker.service
找到ExecStart
行,修改为:ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
重新加载 systemd 的配置,并重启 Docker 服务:
systemctl daemon-reload
systemctl restart docker
2
# 安装Docker Compose
官方文档 (opens new window) 版本列表 (opens new window)
通过二进制文件安装
curl -L "https://github.com/docker/compose/releases/download/(版本号)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
以v2.23.3
为例
curl -L "https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
# 问题记录
- 在
Armbian
系统安装后,执行出现docker-compose version
报错/usr/local/bin
路径下找不到docker-compose
命令。
echo $PATH
发现该目录在环境变量中。
权限也给了,找不出原因,干脆删除该文件,换一种方式安装。
参照官方文档给的命令:
sudo apt-get install docker-compose-plugin
安装后执行docker-compose version
,话说报错找不到docker-compose
命令,不过这次没有提/usr/local/bin
,猜测是没放到可执行目录下,
看看docker-compose
的安装目录:
docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'
输出/usr/libexec/docker/cli-plugins/docker-compose
给该文件创建一个软连接到可执行目录下
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
再次运行docker-compose
命令,成功输出版本信息。
# 修改配置
修改/etc/docker/daemon.json文件,如果没有先建一个即可
{
"registry-mirrors": [
"https://hub.littlediary.cn",
"https://docker.m.daocloud.io",
"https://hub.crdz.gq",
"https://hub.firefly.store",
"https://docker.unsee.tech"
]
}
2
3
4
5
6
7
8
9
使配置生效
systemctl daemon-reload
service docker restart
docker info
2
3
# 使用代理网络
- 创建
dockerd
相关的systemd
目录,这个目录下的配置将覆盖dockerd
的默认配置
mkdir -p /etc/systemd/system/docker.service.d
新建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf
,这个文件中将包含环境变量:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"
2
3
4
多个 NO_PROXY
变量的值用逗号分隔,而且可以使用通配符*
,极端情况下,如果 NO_PROXY=*
,那么所有请求都将不通过代理服务器。
重新加载配置文件,重启 dockerd
服务
systemctl daemon-reload
systemctl restart docker
2
检查确认环境变量已经正确配置:
systemctl show --property=Environment docker
docker info | grep -i proxy
2