Linux(Ubuntu、Centos)环境安装部署Docker及Docker-compose

Centos7安装Docker环境

# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源(选择其中一个)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
# 查看yum 源上docker版本
yum list docker-ce --showduplicates | sort -r
# 安装需要的版本
yum install docker-ce-18.03.1.ce
启动服务
systemctl start docker
systemctl enable  docker

Ubuntu 16.04安装docker

#由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
sudo apt-get remove docker docker-engine docker-ce docker.io
 #更新apt包索引:
 sudo apt-get update
 #安装以下包以使apt可以通过HTTPS使用存储库(repository):
 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
#添加Docker官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#使用下面的命令来设置stable存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 #再更新一下apt包索引:
 sudo apt-get update
  #安装最新版本的Docker CE:
 sudo apt-get install -y docker-ce
 #查看docker服务是否启动:
 sudo systemctl status docker
#若未启动,则启动docker服务:
 sudo systemctl start docker

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="/data/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

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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容