二进制安装 docker

632 阅读1分钟

下载二进制文件

下载地址:download.docker.com/linux/stati…
解压文件

tar -zxvf docker-27.4.0.tgz
docker/
docker/runc
docker/containerd
docker/docker-init
docker/dockerd
docker/containerd-shim-runc-v2
docker/docker-proxy
docker/docker
docker/ctr

将解压出来的二进制文件 都复制到 /usr/local/bin

sudo cp docker/* /usr/local/bin/

查看 docker 客户端版本

docker version
Client:
 Version:           27.4.0
 API version:       1.47
 Go version:        go1.22.10
 Git commit:        bde2b89
 Built:             Sat Dec  7 10:37:44 2024
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

创建 systemd 服务文件

cat /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

编写 docker 配置文件

cat /etc/docker/daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "proxies": {
    "http-proxy": "http://10.0.20.46:1081",
    "https-proxy": "http://10.0.20.46:1081",
    "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8,registry.chillcy.com"
  }
}

启动服务

# 重新加载 systemd
sudo systemctl daemon-reload

# 启动 Docker
sudo systemctl start docker

# 设置开机启动
sudo systemctl enable docker

# 查看状态
sudo systemctl status docker

配置 docker 用户组

原因:

docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/containers/json": dial unix /var/run/docker.sock: connect: permission denied
# 创建 docker 组(如果不存在)
sudo groupadd docker

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 查看当前用户的组
groups $USER
we8 : we8 users docker
# 修改组为 docker
sudo chown root:docker /var/run/docker.sock

# 确认权限
ls -l /var/run/docker.sock
# 应该显示
# srw-rw---- 1 root docker 0 Dec 11 23:07 /var/run/docker.sock
# 重启服务
sudo systemctl restart docker

# 检查服务状态
sudo systemctl status docker
# 方法1:重新登录用户
logout
# 或
# 方法2:刷新组成员身份
newgrp docker
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES