暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker 和 Docker-Compose 安装

数码百科 2024-03-05
33

1. Docker 二进制脚本安装

#!/bin/bash
docker_software="docker-19.03.9"
docker_download_link="https://download.docker.com/linux/static/stable/x86_64/"
docker_service="/usr/lib/systemd/system/docker.service"
registry_mirrors="https://7hsct51i.mirror.aliyuncs.com"
docker_dir_base="/opt/docker"
docker_dir_bin="${docker_dir_base}/bin"
docker_dir_conf="${docker_dir_base}/conf"
docker_dir_data="${docker_dir_base}/data"
# 如下自动执行
mkdir -p ${docker_dir_bin}
mkdir -p ${docker_dir_conf}
mkdir -p ${docker_dir_data}
# 安装wget
rpm -q wget > /dev/null 2>&1
if [ "$?" -ge 1 ];then
    echo "install wget,Please wait..."
    yum -y install wget > /dev/null 2>&1
    rpm -q wget > /dev/null 2>&1
    [ $? -ge 1 ] && echo "wget installation failure,exit" && exit
     echo "安装wget 成功"
fi
# 下载软件包并解压
if [ ! -f ${docker_software}.tgz ];then
echo "正在下载安装包:${docker_software}.tgz"
    wget ${docker_download_link}${docker_software}.tgz
    [ ! -f ${docker_software}.tgz ] && echo "${docker_software}.tgz download failure,exit" && exit
else
echo "安装包已存在:${docker_software}.tgz"
fi
mkdir -p ${docker_dir_bin}
tar zxvf ${docker_software}.tgz -C ${docker_dir_base} > /dev/null 2>&1
if [ "$?" != 0 ];then
echo "${docker_software}.tgz 解压失败,退出程序" && exit
fi
mv -f ${docker_dir_base}/docker/* ${docker_dir_bin} > /dev/null 2>&1
find ${docker_dir_bin} -type f | xargs -i ln -sfn {} /usr/local/bin/
echo "${docker_software}.tgz下载解压完成"
# Sytemctl 管理
cat > ${docker_service} << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStart=${docker_dir_bin}/dockerd \
--config-file ${docker_dir_conf}/daemon.json \
--data-root ${docker_dir_data} \
-H tcp://0.0.0.0:8088 -H unix:///var/run/docker.sock
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
echo "Sytemctl 管理配置完成:${docker_service}"
# 镜像加速
mkdir -p ${docker_dir_conf}
cat > ${docker_dir_conf}/daemon.json << EOF
{
  "registry-mirrors": ["${registry_mirrors}"]
}
EOF
echo "镜像加速配置完成:${docker_dir_conf}/daemon.json"
# 启动docker
systemctl daemon-reload
systemctl restart docker.service
# 开机启动
echo "配置开机启动"
systemctl enable docker
echo "测试docker,运行容器:hello-world"
docker run hello-world
clear
cat << EOF
${docker_software} 版本,成功安装
相关信息:
base docker安装目录:${docker_dir_base}
bin  执行文件目录:${docker_dir_bin}
conf 配置文件目录:${docker_dir_conf}
data 数据存储目录:${docker_dir_data}
EOF

2. Docker-Compose 二进制脚本安装

#!/bin/bash
docker_compose='docker-compose'
# 下载软件包并解压
if [ ! -f ${docker_compose}* ];then
echo "正在下载安装包:${docker_compose}"
    curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 -o ./${docker_compose}
    [ ! -f ${docker_compose}* ] && echo "${docker_compose} download failure,exit" && exit
else
echo "安装包已存在:${docker_compose}"
fi
chmod 777 ${docker_compose}
mv -f ${docker_compose} /usr/local/bin
${docker_compose}
if [ "$?" -eq 0 ];then
clear && echo "安装${docker_compose}成功"
fi
docker-compose

文章转载自数码百科,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论