docker compose 安装
docker-compose:
指的是在单机节点上批量管理一组容器的方法,目前比较主流的单机编排工具是"docker-compose"。
如上图所示,是docker版本和docker-comopse的对应关系。
推荐阅读:
https://docs.docker.com/compose/compose-file/
https://docs.docker.com/compose/compose-file/compose-versioning/
三种安装docker-compose方式:
(1)使用epel源直接安装(缺点就是版本较低,docker-compose version 1.18.0,)
# yum -y install epel-release
# yum -y install docker-compose
(2)给docker打补丁安装(先安装docker,再docker compose补丁,一般情况是最新版本)
curl -s -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo yum -y install docker-compose-plugin vim /root/.bashrc ... alias docker-compose='docker compose'
source /root/.bashrc
yum -y remove docker-compose-plugin # 卸载软件
白眉大叔用这种方式安装的。
docker-compose 升级
如果遇到这样的问题,就需要升级了
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
whereis docker-compose
/usr/bin/docker-compose
根据上一步的whereis
找到了docker-compose的路径为:/usr/bin/docker-compose
,所以下面的脚本,路径也替换为这个就可以了。
下载一个
https://github.com/docker/compose/releases/
或直接下载centos地址
https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64
改名
mv docker-compose-linux-x86_64 docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin/
检查
docker-compose version
(3)基于二进制安装(需要从GitHub下载软件包,不推荐!速度慢!)
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
参考链接:
https://docs.docker.com/compose/install/linux/
https://docs.docker.com/compose/install/other/
GitHub加速地址: (慎入哟,尤其是需要登录时不建议使用,公开的项目是可以下载的!)
https://hub.nuaa.cf/
https://ghproxy.com
自定义脚本安装: 推荐:
sh install-docker.sh install
这个脚本可以 实现 docker 和 docker-cojmpose 的安装
docker and docker-compose install binary: https://url69.ctfile.com/d/253469-56495921-56a066?p=2206 (访问密码: 2206)
install-docker.sh 内容:
#!/bin/bash # auther: baimei # 官网地址: www.baimeidashu.com
DOCKER_VERSION=24.0.2
DOCKER_VERSION=20.10.24
DOCKER_VERSION=19.03.15
DOCKER_COMPOSE_VERSION=2.17.3
DOCKER_COMPOSE_VERSION=2.18.1 FILENAME=docker-${DOCKER_VERSION}.tgz DOCKER_COMPOSE_FILE=docker-compose-v${DOCKER_COMPOSE_VERSION} URL=https://download.docker.com/linux/static/stable/x86_64
DOCKER_COMPOSE_URL=https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64
DOCKER_COMPOSE_URL=https://hub.nuaa.cf/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64 DOWNLOAD=./download BASE_DIR=/baimei/softwares
判断是否下载了docker-compose
function prepare(){
判断是否下载docker-compose文件
if [ ! -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} ]; then wget -T 3 -t 2 ${DOCKER_COMPOSE_URL} -O ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} fi
if [ $? != 0 ];then rm -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} echo "不好意思,由于网络波动原因,无法下载${DOCKER_COMPOSE_URL}软件包,程序已退出!请稍后再试......" exit 100 fi
给脚本添加执行权限
chmod +x ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} }
定义安装函数
function InstallDocker(){ # 判断文件是否存在,若不存在则下载软件包 if [ ! -f ${DOWNLOAD}/${FILENAME} ]; then wget ${URL}/${FILENAME} -O ${DOWNLOAD}/${FILENAME} fi
# 判断解压路径是否存在 if [ ! -d ${BASE_DIR} ]; then install -d ${BASE_DIR} fi # 解压软件包到指定目录 tar xf ${DOWNLOAD}/${FILENAME} -C ${BASE_DIR} # 安装docker-compose prepare cp $DOWNLOAD/${DOCKER_COMPOSE_FILE} ${BASE_DIR}/docker/docker-compose # 创建软连接 ln -svf ${BASE_DIR}/docker/* /usr/bin/ # 自动补全功能 cp $DOWNLOAD/docker /usr/share/bash-completion/completions/docker source /usr/share/bash-completion/completions/docker # 配置镜像加速 install -d /etc/docker cp $DOWNLOAD/daemon.json /etc/docker/daemon.json # 开机自启动脚本 cp download/docker.service /usr/lib/systemd/system/docker.service systemctl daemon-reload systemctl enable --now docker docker version docker-compose version tput setaf 3 echo "安装成功,欢迎使用白眉大叔二进制docker安装脚本,欢迎下次使用!---> www.baimeidashu.com" tput setaf 2
}
卸载docker
function UninstallDocker(){
停止docker服务
systemctl disable --now docker
卸载启动脚本
rm -f /usr/lib/systemd/system/docker.service
清空程序目录
rm -rf ${BASE_DIR}/docker
清空数据目录
rm -rf /var/lib/{docker,containerd}
清除符号链接
rm -f /usr/bin/{containerd,containerd-shim,containerd-shim-runc-v2,ctr,docker,dockerd,docker-init,docker-proxy,runc}
使得终端变粉色
tput setaf 5 echo "卸载成功,欢迎再次使用白眉大叔二进制docker安装脚本哟~ ----> www.baimeidashu.com" tput setaf 7 }
程序的入口函数
function main(){
判断传递的参数
case $1 in "install") InstallDocker ;; "remove") UninstallDocker ;; *) echo "Invalid parameter, Usage: $0 install|remove" ;; esac }
向入口函数传参
main $1
检查:
说明 成功安装
docker and docker-compose install binary: https://url69.ctfile.com/d/253469-56495921-56a066?p=2206 (访问密码: 2206)