docker离线安装
docker离线包下载地址,下载最新,示例:docker-29.1.4.tgz
下载地址
docker compose插件下载地址,示例:docker-compose-linux-x86_64
下载地址
安装步骤
上传docker-29.1.4.tgz到linux服务器,比如/opt,然后解压
1
tar -xvf docker-29.1.4.tgz
将解压文件移动到指定文件夹下,用于全局环境配置
1
sudo cp docker/* /usr/bin/
编写dockers.service,让linux的systemctl接管
1
vi dokcer.service
内容为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21[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
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target保存后将docker.service移动到/etc/systemd/system/下
1
mv dokcer.service /etc/systemd/system/
加载docker.service并检查docker服务状态
1
2
3
4sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker如果有自己的镜像,可以直接导入tar镜像
1
docker load -i myapp.tar
如果使用官方下载,配置国内源
1
2sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.jsondaemon.json内容为
1
2
3
4
5
6
7
8{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.baidubce.com",
"https://dockerproxy.com",
"https://registry.docker-cn.com"
]
}重启docker
1
2sudo systemctl daemon-reload
sudo systemctl restart docker如果使用docker compose,额外安装插件,先将下载的docker-compose-linux-x86_64上传到linux
1
2
3sudo mkdir -p /usr/lib/docker/cli-plugins
sudo cp ./docker-compose-linux-x86_64 /usr/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/lib/docker/cli-plugins/docker-compose验证
1
docker compose version
使用加载
1
docker compose -f docker-compose.yml up -d
docker-compose.yml内容示例
1
2
3
4
5
6
7
8
9services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock如果想docker容器能够访问外网,开启ip转发
1
vi /etc/sysctl.conf
添加或修改内容
1
net.ipv4.ip_forward = 1
然后加载使配置生效
1
sudo sysctl -p
遇到的问题
问题描述
启动或重启容器出现1
Error response from daemon: Cannot restart container 8262d137b42f: failed to create task for container: failed to create shim task: OCI runtime create failed: container_linux.go:340: starting container process caused "permission denied"
解决方案
银河麒麟/usr/local/bin/runc一开始就存在,影响docker提供的/usr/bin/runc,用docker带的runc备份覆盖或删除原有的/usr/local/bin/runc.
重启docker和容器检查是否已经恢复。1
2cp ./docker/runc /usr/local/bin/runc
systemctl restart docker问题描述
docker启动出现网络问题1
docker ✘ Network opt_default Error Error response from daemon: Failed to Setup IP tables: Unable to enable ACCEPT OUTGOING rule: (iptables failed: iptables --wait -t filter -A DOCKER-FORWARD -i br-d43eab305ec7 ... 0.0s failed to create network opt_default: Error response from daemon: Failed to Setup IP tables: Unable to enable ACCEPT OUTGOING rule: (iptables failed: iptables --wait -t filter -A DOCKER-FORWARD -i br-d43eab305ec7 -j ACCEPT: iptables: No chain/target/match by that name. (exit status 1))
解决方案
编辑 /etc/docker/daemon.json(如果不存在可以创建):1
2
3{
"iptables": true
}重启docker
1
systemctl restart docker