
正文
suse 12 脚本部署docker(二进制文件)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
suse-linux:~ # cat /etc/issue
Welcome to SUSE Linux Enterprise Server 12 SP3 (x86_64) - Kernel \r (\l).
suse-linux:~ # uname -a
Linux suse-linux 4.4.73-5-default #1 SMP Tue Jul 4 15:33:39 UTC 2017 (b7ce4e4) x86_64 x86_64 x86_64 GNU/Linux
suse-linux:~ # systemctl status SuSEfirewall2 # suse的firewalld和centos不一样
● SuSEfirewall2.service - SuSEfirewall2 phase 2
Loaded: loaded (/usr/lib/systemd/system/SuSEfirewall2.service; disabled; vendor preset: disabled)
Active: inactive (dead)
`README:`
'此脚本是二进制的方式部署docker,比较适合suse 12发行版的linux,centots和redhat,可以使用yum的方式部署'
'脚本默认部署的是19.03.9版本的docker,需要其他版本,修改getPackage函数内version变量即可'
'本地没有网络的情况下,提前准备好tgz二进制包,并注释getPackage函数内的wget这一行即可'
'imageJson内配置了阿里云镜像加速,如果有自己的私仓,可以修改这里面的内容'
#!/usr/bin/env bash
set -egetPackage(){
local version=docker-19.03.9
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/${version}.tgz --no-check-certificate
tar xf ${version}.tgz
}setService(){
mv docker/* /usr/bin/ && rm -rf docker
cat > /etc/systemd/system/docker.service <<-EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
EOF
}imageJson(){
mkdir /etc/docker
cat > /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOFsystemctl daemon-reload && \
systemctl enable docker --now
}main(){
getPackage
setService
imageJson
}main
status=$(ps -ef | grep [do]cker | wc -l )
if [ ${status} -gt 1 ];
then
echo "docker is running"
else
echo "have some error!"
exit 1
fi






