docker,docker-compose二进制包安装

1.docker包下载网址:

https://download.docker.com/linux/static/stable/

2.docker安装操作步骤

复制代码
手动安装
#Docker环境

传输docker24.tar到/home中
tar -xvf docker24.tar
cd ./docker
# 将docker二进制文件放到/usr/bin/目录
cp docker dockerd docker-init docker-proxy containerd containerd-shim-runc-v2 ctr runc /usr/bin/

# 确保可执行权限
chmod +x /usr/bin/docker /usr/bin/dockerd /usr/bin/containerd

# 创建docker用户组
groupadd docker

# 将当前用户加入docker组
usermod -aG docker $USER

# 创建必要的目录
mkdir -p /etc/docker
mkdir -p /var/lib/docker
mkdir -p /etc/containerd

# 生成containerd默认配置
containerd config default | tee /etc/containerd/config.toml

# 修改cgroup驱动为systemd
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

cat > /etc/systemd/system/containerd.service << 'EOF'
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF

cat > /etc/systemd/system/docker.service << 'EOF'
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target containerd.service
Wants=network.target

[Service]
Type=notify
ExecStart=/usr/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
EOF

cat > /etc/docker/daemon.json << 'EOF'
{
  "data-root":"/data/docker", 
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries":["10.0.52.42:8050"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"},
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

# 创建daemon.json中指定的数据目录
mkdir -p /data/docker
chmod 755 /data/docker

# 重新加载systemd
systemctl daemon-reload

# 启动containerd
systemctl start containerd
systemctl enable containerd

# 启动docker
systemctl start docker
systemctl enable docker

# 检查服务状态
systemctl status containerd
systemctl status docker

docker --version
#Docker version 24.0.9, build 2936816

3.卸载docker

复制代码
rm -rf /etc/systemd/system/docker.service

rm -rf /usr/bin/docker*

systemcttl daemon-reload

4.docker-compose下载地址

https://github.com/docker/compose/releases

5.docker-compose安装下载步骤

复制代码
cp docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

6.ansible剧本

复制代码
---
- name: install-docker
  hosts: servers
  tasks:
    - name: copy 
      copy:
        src: /home/docker/
        dest: /tmp/docker-bin/
        owner: root
        mode: '0755'
    - name: Run a script with arguments
      script: /data/ansible/work-dir/install-docker.sh

7.脚本

复制代码
#!/bin/bash
set -e  # 添加错误检查

# 使用临时目录
BIN_SRC="/tmp/docker-bin"
cd $BIN_SRC

# 复制二进制文件
for binary in docker dockerd docker-init docker-proxy containerd containerd-shim-runc-v2 ctr runc docker-compose; do
    if [ -f "$binary" ]; then
        cp "$binary" /usr/bin/
        chmod +x /usr/bin/"$binary"
    fi
done

# 创建docker用户组(如果不存在)
getent group docker >/dev/null 2>&1 || groupadd -r docker

# 创建必要的目录
mkdir -p /etc/docker
mkdir -p /var/lib/docker
mkdir -p /etc/containerd
mkdir -p /data/docker
chmod 755 /data/docker

# 生成containerd配置
if [ -f /usr/bin/containerd ]; then
    containerd config default > /etc/containerd/config.toml
    sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
fi

# 配置docker daemon
cat > /etc/docker/daemon.json << 'EOF'
{
  "data-root": "/data/docker",
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["10.0.52.42:8050"],
  "log-driver": "json-file",
  "log-opts": {"max-size": "500m", "max-file": "3"},
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

# 创建systemd服务
cat > /etc/systemd/system/containerd.service << 'EOF'
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF

cat > /etc/systemd/system/docker.service << 'EOF'
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
Requires=containerd.service
After=network.target containerd.service
Wants=network.target

[Service]
Type=notify
ExecStart=/usr/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
EOF

# 重新加载systemd
systemctl daemon-reload

# 启动服务
systemctl enable --now containerd
systemctl enable --now docker

# docker-compose安装
if [ -f "docker-compose" ]; then
    cp docker-compose /usr/local/bin/
    chmod +x /usr/local/bin/docker-compose
fi

echo "Docker installation completed successfully"
相关推荐
Alsn8619 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
程序员老赵1 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏1 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主1 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang1 天前
Docker 使用完整指南
运维·docker·容器
正经教主1 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
CodeStats1 天前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker
ai产品老杨1 天前
突破安防碎片化:基于 Docker 与边缘计算的 AI 视频智能化中台,如何通过 GB28181/RTSP 统一接入与全套源码交付实现二次开发自由?
人工智能·docker·边缘计算
正经教主1 天前
【docker基础】第十三周:学习总结与进阶方向【完结】
运维·docker·容器
“码”力全开1 天前
解耦异构设备:基于 Docker 与边缘计算的 GB28181/RTSP 统一流媒体平台架构演进(全源码交付)
docker·架构·边缘计算