Docker-compose使用场景
我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose 。
docker swarm(管理跨节点)
Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。
————————————————
版权声明:本文为CSDN博主「天国召唤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tgzh123/article/details/130330910
cat >> offlineinstallarkid.sh << "EOF"
tar -vxzf docker-*.tgz
cp docker/* /usr/bin/
mv docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
nohup dockerd >/dev/null 2>&1 &
docker load < arkidimages.tar
EOF
cat >> get_all.sh << "EOF"
# docker版本
DOCKERVERSION=19.03.12
# docker-compose版本
DCVERSION=1.28.2
ping -c 1 www.baidu.com > /dev/null 2>&1
if [ $? -eq 0 ];then
echo "网络良好!!"
else
echo "访问不了百度,应该是没有外网?"
exit 1
fi
# 下载镜像,压缩镜像
downloadImages(){
echo -e "\n 开始下载镜像, 将要下载的镜像版本:\n"
arkidimages=(`cat arkid-docker-compose/docker-compose.yml |grep image |awk '{print $2}'`)
for i in ${arkidimages[*]}
do
echo $i
done
for i in ${arkidimages[*]}
do
echo -e "\n --------- docker pull $i -----------------------\n"
docker pull $i
done
echo -e "\n --------- 导出镜像到一个压缩文件里 arkidimages.tar ---------------\n "
docker save -o arkidimages.tar ${arkidimages[*]}
}
# 下载 docker-compose
downloadCompose(){
echo -e "\n下载docker-compose $DCVERSION \n"
curl -L https://get.daocloud.io/docker/compose/releases/download/$DCVERSION/docker-compose-Linux-x86_64 > ./docker-compose
}
# 下载 docker
downloadDocker(){
echo -e "\n下载docker压缩包 $DOCKERVERSION \n"
curl -LO https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-$DOCKERVERSION.tgz
}
# 下载 docker-compose描述文件
downloadGit(){
if [ -d "arkid-charts" ]; then
echo -e "arkid-charts已经在本目录下!"
else
echo -e "\n下载 arkid 部署文件\n"
git clone --branch master --depth 1 https://github.com/longguikeji/arkid-charts.git
fi
if [ -d "arkid-charts/docker-compose" ]; then
mv arkid-charts/docker-compose ./arkid-docker-compose
rm -rf arkid-charts
else
if [ -d "./arkid-docker-compose" ]; then
echo -e "\n arkid 部署文件已经存在 \n"
else
echo -e "请删掉 arkid-charts文件夹,再执行脚本"
fi
fi
}
downloadGit
downloadImages
downloadCompose
downloadDocker
echo -e "\n ------------------------ 下载完成!------------------------ \n"
EOF
bash get_all.sh