Ubuntu下 Docker、Docker Compose 的安装教程

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker Compose 是用于定义和运行多容器docker应用程序的工具,compose 通过一个配置文件来管理多个 docker容器。可以使用 docker-compose.yml脚本来 启动、停止、重启应用,进行docker容器的编排和管理。但是 docker compose并没有实现容器的负载均衡,还需要借助其他工具实现。

下面以 CentOS 系统为例,介绍如何安装 Docker 以及 Docker Compose

安装 Docker

最详细的ubuntu 安装 docker教程_ubuntu docker_软件测试大空翼的博客-CSDN博客

1.系统版本

本文以Ubuntu20.05系统为例安装docker,Ubuntu官方下载地址

2.检查卸载老版本docker

ubuntu下自带了docker的库,不需要添加新的源。

但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。

注:docker的旧版本不一定被称为docker,docker.io 或 docker-engine也有可能,所以我们卸载的命令为:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

如果不能正常卸载,出现如下情况,显示无权限时,需要添加管理员权限才可进行卸载:

我们就需要使用sudo apt-get remove docker docker-engine docker.io containerd runc命令使用root权限来进行卸载。

3.安装步骤

更新软件包

在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本:

sudo apt update
sudo apt upgrade

安装docker依赖

Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:

sudo apt-get install ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

结果如下:

添加Docker软件源

执行以下命令来添加Docker的软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

注:该命令需要使用root权限

安装docker

执行以下命令来安装Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

sudo usermod -aG docker $USER

注:重新登录才能使更改生效。

4.运行docker

验证安装

我们可以通过启动docker来验证我们是否成功安装。命令如下:

sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

安装工具

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

重启docker

sudo systemctl restart docker

验证是否成功

sudo docker run hello-world

运行命令后,结果如下:

因为我们之前没有拉取过hello-world,所以运行命令后会出现本地没有该镜像,并且会自动拉取的操作。

查看版本

我们可以通过下面的命令来查看docker的版本

sudo docker version

结果如下:

查看镜像

上面我们拉取了hello-world的镜像,现在我们可以通过命令来查看镜像,命令如下:

sudo docker images

结果如下图:

出现上述情况,即表示我们成功在Ubuntu系统上安装了docker。

二、安装 Docker Compose

安装方式一(use)

docker官网地址:Overview of installing Docker Compose | Docker Docs

1、检查本地docker版本

docker version

2、docker-compose版本选择

根据docker版本选择对应的docker-compose版本。

docker-compose官网地址:Compose file version 3 reference | Docker Docs

3、安装

官网安装地址:Install Compose standalone | Docker Docs

# github: https://github.com/docker/compose/releases/tag/v2.20.2 
# 国内下载地址:https://gitee.com/smilezgy/compose/releases/tag/v2.20.2
sudo curl -SL \
https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose

# 或者手动下载, 上传到服务器后执行如下指令(use)
# 在 docker-compose-linux-x86_64 文件同一目录下执行
sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose

4、添加可执行权限

chmod +x /usr/local/bin/docker-compose

5、测试

[root@bogon bin]# docker-compose --version
Docker Compose version v2.20.2

如果需要删除则执行如下命令

rm -rf /usr/local/bin/docker-compose

6、Docker Compose运行项目

要运行Docker Compose,需要在项目目录中拥有一个docker-compose.yml文件。完成以下步骤:

  1. 打开终端或命令提示符。

  2. 导航到存放docker-compose.yml文件的目录。

  3. 运行以下命令启动在compose文件中定义的容器:

    docker-compose up

默认情况下,此命令将启动compose文件中指定的所有服务,并在终端中显示它们的日志。
要使用分离模式(在后台)运行容器,可以添加 -d标志:

# 此命令会启动容器并将控制返回给终端。
docker-compose up -d

请注意,如果是第一次运行 docker-compose up,它将从Docker Hub拉取任何必要的Docker镜像,然后再启动容器。

安装方式二

(1)执行如下命令安装 pip3

yum -y install python3-pip

pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)执行如下命令安装 docker-compose

pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple

(3)安装完毕后执行如下命令查看版本:

docker-compose version

(4)控制台显示如下则表示安装成功:

相关推荐
二十雨辰2 小时前
[linux]docker基础
linux·运维·docker
饮浊酒2 小时前
Linux操作系统 ------(3.文本编译器Vim)
linux·vim
lihuhelihu2 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
矛取矛求3 小时前
Linux系统性能调优技巧
linux
One_Blanks3 小时前
渗透测试-Linux基础(1)
linux·运维·安全
Perishell3 小时前
无人机避障——大疆与Airsim中的角速度信息订阅获取
linux·动态规划·无人机
爱吃喵的鲤鱼3 小时前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
dessler3 小时前
Linux系统-ubuntu系统安装
linux·运维·云计算
荒Huang4 小时前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
hjjdebug6 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal