Ubuntu一键安装/卸载docker和docker compose,可指定版本或安装最新版本。

这篇具有很好参考价值的文章主要介绍了Ubuntu一键安装/卸载docker和docker compose,可指定版本或安装最新版本。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

@

目录
  • 前言
  • 一、docker是什么?
  • 二、docker compose是什么?
  • 三、安装步骤
    • 1.Ubuntu安装脚本
    • 2.生成脚本
    • 3.启动和验证
  • 四、卸载步骤
    • 1.Ubuntu卸载脚本
    • 2.保存文件后设置执行权限
    • 3.运行文件
    • 4.验证是否删除成功
  • CentOS
    • 安装脚本
    • 卸载脚本
  • 总结

个人博客:FaceMan' Blog 。
Github:FaceMan' GitHub 。

前言

在新建的服务器上,我们一般会用几条命令来下载安装docker和docker-compose,这里为了避免每次都去搜索安装命令,所以写成脚本,本文仅支持Ubuntu\CentOS。


一、docker是什么?

Docker是一个开源的容器化平台,用于构建、部署和管理应用程序。它采用了轻量级的容器技术,可以在不同的操作系统上运行,并提供了一种将应用程序及其依赖项打包到可移植的容器中的方式。

以下是Docker的一些重要特点和概念:

  • 容器化:Docker利用Linux内核的容器功能来隔离应用程序及其依赖项。每个容器都是一个独立的运行环境,具有自己的文件系统、进程空间和资源限制。容器可以快速启动、停止和迁移,而且相互之间彼此隔离,避免了应用程序之间的冲突和依赖问题。

  • 镜像:Docker使用镜像来构建容器。镜像是一个只读的模板,包含了应用程序运行所需的所有文件系统、库和依赖项。通过使用Dockerfile定义构建步骤,可以创建自定义的镜像。镜像可以从Docker Hub等镜像仓库中获取,也可以通过构建自己的镜像进行定制。

  • 容器注册表:Docker Hub是Docker官方的公共镜像注册表,提供了大量的基础镜像供用户使用。除此之外,还有其他的公共和私有镜像注册表,用户可以在其中存储和分享自己的镜像。

  • Docker引擎:Docker引擎是运行和管理容器的核心组件。它包括一个守护进程(Docker daemon)和一个命令行客户端(Docker CLI)。守护进程负责构建、运行和管理容器,而命令行客户端提供了交互式的接口来与守护进程进行通信。

  • 编排和管理工具:Docker提供了一系列的编排和管理工具,用于简化多个容器的部署和管理。例如,Docker Compose允许通过一个YAML文件描述多个容器的关系和配置,并通过一条命令启动、停止和扩展整个应用程序的容器集群。

  • 跨平台支持:Docker可以在不同的操作系统上运行,包括Linux、Windows和MacOS等。对于Linux平台,Docker直接使用操作系统的容器功能;而对于Windows和MacOS,Docker使用一个轻量级的虚拟机(称为Docker Desktop)来提供容器化环境。

  • 生态系统:Docker拥有庞大的开发者社区和丰富的生态系统。社区提供了大量的文档、教程和示例代码,以及交流和支持的平台。此外,还有许多第三方工具和服务,如监控工具、CI/CD集成等,与Docker集成,进一步扩展了其功能和用途。

总结起来,Docker是一个强大的容器化平台,通过将应用程序及其依赖项打包到独立的容器中,提供了更加灵活、可移植和可扩展的应用部署和管理方式。它已经成为现代软件开发和运维的重要工具之一。

二、docker compose是什么?

Docker Compose是一个用于定义和管理多个Docker容器的工具。它允许您使用简单的YAML文件描述应用程序中的服务、网络、存储卷等配置,并通过一个命令行界面来启动、停止和管理这些容器。

以下是Docker Compose的一些重要特点:

  • 声明式语法:Docker Compose使用声明式的YAML文件来描述应用程序的架构和配置。您可以在文件中定义每个服务的镜像、端口映射、环境变量、依赖关系等。这种声明式语法使得定义和管理复杂的容器集群变得简单且可维护。

  • 多容器应用管理:Docker Compose专注于管理多个相关的容器,以构建完整的应用程序堆栈。通过一次性的命令,您可以启动、停止、重启和销毁整个容器集群,而不需要手动处理每个容器。

  • 容器间连接和通信:使用Docker Compose,您可以轻松地为容器之间创建连接和网络。您可以定义容器之间的连接方式,使它们能够相互通信和访问。这在构建微服务架构或多层应用程序时非常有用。

  • 可伸缩性和负载均衡:Docker Compose允许您设置容器的伸缩策略,以根据应用程序的需要自动扩展或收缩容器。它还支持与负载均衡器集成,可以将流量分发到多个实例上,提高应用程序的性能和可靠性。

  • 环境隔离和测试:使用Docker Compose,您可以轻松地在开发和测试环境中复制生产环境的配置。您可以创建一个本地的容器化开发环境,确保应用程序在不同环境下的一致性,并减少由于环境差异引起的问题。

  • 可插拔的架构:Docker Compose是可插拔的,可以与其他工具和服务集成,以满足特定需求。例如,您可以与监控和日志记录工具集成,以监视和管理容器的性能和状态。

Compose V1语法: Compose V1语法是较早版本的Compose语法,其文件名通常为docker-compose.yml。以下是一些Compose V1语法的特点:

  • services:使用services关键字定义要运行的服务。每个服务都有一个名称和一组配置选项。

  • image:指定要使用的镜像名称。

  • ports:定义要映射到主机上的容器端口。

  • volumes:指定要挂载到容器中的卷。

  • links:定义与其他服务之间的连接。

  • environment:设置容器中的环境变量。

  • depends_on:定义服务之间的依赖关系。

以下是一个Compose V1语法的示例:

version: '2'

services:
  web:
    image: nginx:latest
    ports:
      - 8080:80
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_PASSWORD=secret

Compose V2语法: Compose V2语法是较新版本的Compose语法,其文件名通常为docker-compose.yaml或docker-compose.yml。以下是一些Compose V2语法的特点:

services:与Compose V1相同,使用services关键字定义要运行的服务。
image、ports、volumes、environment等选项与Compose V1相同。
引入了新的配置选项,如networks、configs和secrets,用于更灵活地定义网络、配置文件和机密信息。
以下是一个Compose V2语法的示例:

version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - 8080:80
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_PASSWORD=secret

networks:
  app-net:
    driver: bridge

除了以上介绍的不同之外,Compose V2语法还带来了一些其他改进和功能增强,例如支持多个文件的扩展性,可选项的验证和默认值等。

需要注意的是,在使用Docker Compose时,要根据您所使用的Compose版本选择正确的语法,并确保在编写Compose文件时遵循该版本的语法规范。

三、安装步骤

1.Ubuntu安装脚本

代码如下(示例):

#!/bin/bash
# 卸载当前版本
echo "卸载当前版本....."
sudo apt-get remove docker docker-engine docker.io containerd runc
y
# 设置apt源
echo "设置apt源....."
sudo apt-get update

# 安装基础依赖
echo "安装基础依赖....."
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg

# 启用docker官方的源
echo "启用docker官方的源....."
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 添加docker官方的GPG Key
echo "添加docker官方的GPG Key....."
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 更新软件源
## 更新密钥权限,可选 sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "更新软件源....."
sudo apt-get update

echo "安装最新版本或特定版本(Y(最新)/N(特定))?"
read answer
if [ "$answer" == "Y" -o "$answer" == "y" ]; then
    echo "安装最新版本"
    # 安装最新版本
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
elif [ "$answer" == "N" -o "$answer" == "n" ]; then
    echo "查询版本"
    ## 查询版本
    apt-cache madison docker-ce | awk '{ print $3 }'

    echo "请指定版本:
    例如5:20.10.23~3-0~ubuntu-bionic、5:20.10.23~3-0~ubuntu-focal、5:20.10.23~3-0~ubuntu-jammy"
    read VERSION_STRING
    # 安装特定版本

    # ## 安装特定版本 ubuntu 18.04
    # VERSION_STRING=5:20.10.23~3-0~ubuntu-bionic

    # ## 安装特定版本 ubuntu 20.04
    # VERSION_STRING=5:20.10.23~3-0~ubuntu-focal

    # ## 安装特定版本 ubuntu 22.04
    # VERSION_STRING=5:20.10.23~3-0~ubuntu-jammy

    ## 安装
    sudo apt-get install -y docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-compose-plugin
else
    echo "无效的输入"
fi

2.生成脚本

将上述命令保存为一个脚本文件(例如script.sh),并添加执行权限。您可以在终端中使用以下命令来执行该脚本:

chmod +x script.sh
./script.sh

3.启动和验证

# 查看docker
docker -v
# 老版本docker compose命令为
docker-compose -v
# 新版本docker compose命令为
docker compose version

# 查看docker服务是否启动
$ systemctl status docker
# 若未启动,则启动docker服务
$ sudo systemctl start docker
# 验证hello world
$ sudo docker run hello-world

四、卸载步骤

1.Ubuntu卸载脚本

# 卸载旧版本的Docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
#删除docker的镜像文件
rm -rf /var/lib/docker

ps -ef|grep docker|grep -v grep|xargs kill -s 9

#卸载docker相关包
yum remove docker-*

yum remove docker-ce-cli-*
yum remove docker-scan-plugin*

# 删除旧版docker-compose
rm -rf /usr/local/bin/docker-compose
rm -rf /usr/bin/docker-compose

2.保存文件后设置执行权限

chmod +777  docker-uninstall.sh

3.运行文件

sh  docker-uninstall.sh

4.验证是否删除成功

docker -v
docker-compose -v

CentOS

安装脚本

	#!/bin/bash
	# 卸载当前版本
	echo "卸载当前版本....."
	sudo yum remove docker-ce docker-ce-cli containerd.io
	
	# 设置yum源
	echo "设置yum源....."
	sudo yum install -y yum-utils
	sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
	
	# 安装基础依赖
	echo "安装基础依赖....."
	sudo yum install -y \
	    yum-plugin-copr \
	    device-mapper-persistent-data \
	    lvm2 \
	    git \
	    bash-completion \
	    bash-completion-extras \
	    iptables \
	    policycoreutils-python \
	    selinux-policy-base \
	    selinux-policy-targeted \
	    audit \
	    libseccomp-devel \
	    python3-pip \
	    python3-setuptools \
	    python3-wheel
	
	# 更新软件源
	echo "更新软件源....."
	sudo yum update -y
	
	echo "安装最新版本或特定版本(Y(最新)/N(特定))?"
	read answer
	if [ "$answer" == "Y" -o "$answer" == "y" ]; then
	    echo "安装最新版本"
	    # 安装最新版本
	    sudo yum install -y docker-ce docker-ce-cli containerd.io
	elif [ "$answer" == "N" -o "$answer" == "n" ]; then
	    echo "查询版本"
	    ## 查询版本
	    yum list docker-ce --showduplicates | grep -i "docker-ce"
	
	    echo "请指定版本:
	    例如3:20.10.11-3.el7、3:20.10.11-3.el8"
	    read VERSION_STRING
	    # 安装特定版本
	
	    ## 安装特定版本 centos 7
	    # VERSION_STRING=3:20.10.11-3.el7
	
	    ## 安装特定版本 centos 8
	    # VERSION_STRING=3:20.10.11-3.el8
	
	    ## 安装
	    sudo yum install -y docker-ce-$VERSION_STRING docker-ce-cli-$VERSION_STRING containerd.io
	else
	    echo "无效的输入"
	fi
	# 启动Docker服务
	echo "启动Docker服务....."
	sudo systemctl start docker
	
	# 设置Docker开机自启
	echo "设置Docker开机自启....."
	sudo systemctl enable docker
	
	# 配置Docker加速器
	echo "配置Docker加速器....."
	echo '{
	  "registry-mirrors": ["https://your_mirror_url"]
	}' | sudo tee /etc/docker/daemon.json
	
	# 重启Docker服务
	echo "重启Docker服务....."
	sudo systemctl daemon-reload
	sudo systemctl restart docker
	
	echo "Docker安装完成"

卸载脚本


#!/bin/bash
# 停止和删除所有Docker容器
echo "停止和删除所有Docker容器....."
sudo docker stop $(sudo docker ps -aq)
sudo docker rm $(sudo docker ps -aq)

# 卸载Docker服务
echo "卸载Docker服务....."
sudo yum remove -y docker-ce docker-ce-cli containerd.io

# 删除Docker相关文件和目录
echo "删除Docker相关文件和目录....."
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker

# 删除Docker用户组
echo "删除Docker用户组....."
sudo groupdel docker

# 删除Docker存储库
echo "删除Docker存储库....."
sudo rm -f /etc/yum.repos.d/docker-ce.repo

echo "Docker已成功卸载"

总结

我们可以通过用户输入指令来安装不同版本的docker和docker compose,也可以一键卸载,使用脚本省心又快捷。文章来源地址https://www.toymoban.com/news/detail-812969.html

到了这里,关于Ubuntu一键安装/卸载docker和docker compose,可指定版本或安装最新版本。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos安装指定docker版本和docker-compose

    目录 一. 直接安装Docker最新镜像源 1. 卸载旧版本的Docker: 2. 安装依赖包: 3. 添加Docker源: 4. 安装Docker: 5. 启动Docker服务: 6. 验证Docker是否安装成功: 二、指定Docker版本安装  1. 查看yum源支持的docker版本  2. 安装指定版本Docker (以19.03.9-3.el7为例) 3. 查看docker版本 三、卸

    2024年02月15日
    浏览(39)
  • 一键卸载docker、docker-compose

    1、创建卸载文件: docker-uninstall.sh   docker-uninstall.sh 2、vim  docker-uninstall.sh,输入以下内容 # 卸载旧版本的Docker yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest          

    2024年02月03日
    浏览(41)
  • 【BI看板】Docker-compose安装Superset,安装最新版本2.1.0

    Superset高版本有新的功能增加,代码仓库里面提供了2种安装方式。 字节码安装 最近看仓库,最新版本有3.0了啊,迭代更新非常快了 git clone https://github.com/apache/superset.git 切换分支 git checkout 2.1.0 使用docker-compose安装  已经报了很多错了   使用DockerFile文件

    2024年02月12日
    浏览(46)
  • ubuntu使用docker compose一键部署项目

    1、将前面手动部署的容器和镜像全部删除 docker rmi hmall (hmall镜像名) docker rmi  image_id rmi 是删除多个  rm是删除一个 2、执行命令 docker compose up -d  http://192.168.79.129:18080/search.html 访问安装成功! 该ip是虚拟机ubuntu的ip 3、docker-compose.yml 文件  4、项目结构 mysql文件夹内容:

    2024年01月22日
    浏览(38)
  • composer安装laravel指定版本

    首先确保: 安装了php 安装了composer 以上,这样才能使用composer来安装laravel 按照官方文档的,直接输入命令: 这样就会在当前执行目录下新建一个\\\"example-app\\\"目录 而这个\\\"example-app\\\"我们是可以任意修改的,比如修改成:test 那么安装的目录名,则是\\\"test\\\" 然后我们输入命令: 这

    2024年02月09日
    浏览(35)
  • mac卸载与安装指定版本node

    node -v 安装14版本的node.js 安装16版本的node.js 在终端中,执行 查看node安装成功

    2024年02月15日
    浏览(61)
  • Docker Compose-简单安装与卸载教程

    Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose 支持 Linux、macOS、Windows 三大平台。 Docker Desktop for Mac/Windows 自带 compose ,安装

    2024年02月15日
    浏览(34)
  • npm安装指定版本包,npm按版本安装;npm删除依赖,卸载依赖

    例如安装element-ui的2.15.8版本 在package.json中可以看到: 注:已有版本的情况下需要先删除依赖,不能直接在package.json中改版本号,因为package-lock.json中仍然是修改前的版本号。 1、全局安装 2、本地安装 3、信息写入

    2024年02月12日
    浏览(49)
  • mac卸载与安装指定版本node.js

    node -v 安装14版本的node.js  安装18版本的node.js 在终端中,执行 使环境变量生效 查看node安装成功

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包