首页>软件资讯>常见问题

常见问题

Docker最新安装教程

发布时间:2024-09-27 18:53:45人气:32

Docker 分为 stable 、test 和 nightly 三个更新频道。


官方网站上有各种环境下的安装指南,这里主要介绍 Docker 在Linux 、Windows和 macOS上的安装。


在 Linux 上安装Docker是常见的安装场景,并且安装过程非常简单。通常难点在于 Linux 不同发行版之间的轻微区别,比如 Ubuntu 和 CentOS 之间的差异。接下来的示例基于 Ubuntu 版本 Linux,同样适用于更低或者更高的版本。


理论上,下面的示例在 CentOS 的各种版本上也是可以执行的。至于 Linux 操作系统是安装在自己的数据中心,还是第三方公有云,或是笔记本的虚拟机上,都没有任何的区别。


唯一需求就是这台机器是Linux 操作系统,并且能够访问 https://get.docker.com。


首先读者需要选择安装的 Docker 版本。当前有两个版本可供选择:社区版(Community Edition,CE)和企业版(Enterprise Edition,EE)。


Docker CE 是免费的,并且是接下来示例中将要使用的版本。


Docker EE 包含 Docker CE 中的全部功能,还包括了商业支持以及与其他 Docker 产品的集成,比如Docker 可信镜像库和通用控制面板。


下面的例子使用wget命令来运行一个 Shell 脚本,完成 Docker CE 的安装。


更多其他在 Linux 上安装 Docker 的方式,可以打开 Docker 主页面(www.docker.com),单击页面中 Get Started 按钮来获取。


注:在开始下面的步骤之前,要确认系统升级到最新的包,并且打了相应的安全补丁。


1. CentOS安装Docker

❗切勿在没有配置 Docker Yum源的情况下使用yum命令安装Docker!


1.1 准备工作

系统要求

Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2存储层驱动)无法使用,并且部分功能可能不太稳定。


卸载旧版本

🔈如果没有安装过,这一步可以跳过。


旧版本的Docker称为docker或者docker-engine,使用以下命令卸载旧版本:


sudo yum remove docker

                  docker-client

                  docker-client-latest

                  docker-common

                  docker-latest

                  docker-latest-logrotate

                  docker-logrotate

                  docker-selinux

                  docker-engine-selinux

                  docker-engine

1.2 使用Yum安装

执行以下命令安装依赖包:


sudo yum install -y yum-utils

命令执行示意图:

命令执行示意图.png

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。


执行下面的命令添加 yum 软件源:


# 官方源

sudo yum-config-manager

--add-repo https://download.docker.com/linux/centos/docker-ce.repo


# 国内源(推荐)

sudo yum-config-manager

--add-repo

https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 使用sed工具在文件docker-ce.repo中进行字符串替换

# 目标字符:download.docker.com

# 替换后字符:mirrors.aliyun.com/docker-ce

# 通常目的是为了将 Docker 的源更改为阿里云的镜像源,以加快下载和安装的速度

sudo sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

如果需要测试版本的 Docker 请执行以下命令:


sudo yum-config-manager --enable docker-ce-test

安装Docker

更新 yum 软件源缓存,并安装 docker-ce。


sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

命令执行示意图:

命令执行示意图1.png

设置自启动

执行以下命令开启docker的开机自启动:


systemctl start docker

systemctl enable docker

修改镜像源

为了加快镜像下载和安装的速度,一般我们需要修改镜像源:

命令执行示意图3.png

echo '{"registry-mirrors":["https://dockerproxy.cn","https://hub.dftianyi.top","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]}' > /etc/docker/daemon.json


# 重启

systemctl restart docker

命令执行示意图:

命令执行示意图2.png

1.3 使用脚本安装

❗若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本。


在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:


# 测试版

# curl -fsSL test.docker.com -o get-docker.sh


curl -fsSL https://get.docker.com -o get-docker.sh


# 可以通过 --mirror 选择国内镜像源

sudo sh get-docker.sh --mirror Aliyun

# sudo sh get-docker.sh --mirror AzureChinaCloud


# 设置开机自启动

sudo systemctl start docker.service

sudo systemctl enable docker


# 查看安装的docker版本

sudo docker --version

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。


命令执行示意图:

4.png

修改镜像源

为了加快镜像下载和安装的速度,一般我们需要修改镜像源:


echo '{"registry-mirrors":["https://dockerproxy.cn","https://hub.dftianyi.top","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]}' > /etc/docker/daemon.json


# 重启

systemctl restart docker

命令执行示意图:

命令执行结果.png

1.4 离线安装

在有的项目场景中,服务器是不允许连接外网的。此时若想在服务器上安装部署docker容器,就不能采用在线方式了,不过可以采取离线方式进行安装。下面我们就一起看看离线安装的两种办法。


分步安装法

一键安装法

1.4.1 分步安装法(推荐)

1.4.1.1 安装准备

首先在另一台可外网的电脑上,下载docker离线安装包。下载地址如下:


https://download.docker.com/linux/static/stable/x86_64/


这里我们选择稳定的社区版 docker-18.06.3-ce.tgz,如图所示:

社区结果.png

下载好后,将文件用XFTP等工具,上传到不能外网的Linux系统服务器上。这里需要说明的是,部分服务器防火墙没有开通ftp端口放行,执行以下命令:


# 方式1

sudo systemctl start firewalld

sudo firewall-cmd --zone=public --add-port=21/tcp --permanent

sudo firewall-cmd --zone=public --add-port=23/tcp --permanent

sudo firewall-cmd --reload


# 方式2

/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 23 -j ACCEPT


# 方式3 添加

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT

当然,也可以通过SFTP协议(端口号:22)进行连接。


1.4.1.2 解压文件

我们把离线安装包传输到服务器后,需要对其进行解压,执行以下命令:


tar -zxvf docker-18.06.3-ce.tgz

解压后的文件示意图:

解压后的文件示意图.png

1.4.1.3 复制文件

将解压后的全部文件,使用以下命令,复制到/usr/bin目录中:


cp ./docker/* /usr/bin

1.4.1.4 创建服务文件

接下来,执行以下命令,创建我们的docker.service服务文件:


cd /etc/systemd/system/

vi docker.service

添加以下内容:


[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target


[Service]

Type=notify

# 修改成你自己的服务器IP

ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=[服务器IP]

ExecReload=/bin/kill -s HUP $MAINPID

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TimeoutStartSec=0

Delegate=yes

KillMode=process

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s


[Install]

WantedBy=multi-user.target

执行以下命令,赋予执行权限:


sudo chmod +x docker.service

执行以下命令,刷新服务:


sudo systemctl daemon-reload

1.4.1.5 设置开机自启动

# 设置开机自启动

sudo systemctl start docker

sudo systemctl enable docker


# 查看版本号

docker --version

1.4.2 一键安装法

1.4.2.1 安装准备

首先在另一台可外网的电脑上,下载docker离线安装包。


下载好后,将文件用XFTP等工具,上传到不能外网的Linux系统服务器上。这里需要说明的是,部分服务器防火墙没有开通ftp端口放行,执行以下命令:


# 方式1

sudo systemctl start firewalld

sudo firewall-cmd --zone=public --add-port=21/tcp --permanent

sudo firewall-cmd --zone=public --add-port=23/tcp --permanent

sudo firewall-cmd --reload


# 方式2

/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 23 -j ACCEPT


# 方式3 添加

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT

当然,也可以通过SFTP协议(端口号:22)进行连接。


1.4.2.2 制作一键安装脚本

执行以下命令,新建一个脚本文件:


touch install.sh

写入以下内容:


#!/bin/sh

echo '正在解压安装包'

tar -xvf $1

echo '正在将文件复制到/usr/bin目录'

cp docker/* /usr/bin

echo '将docker.service 复制到/etc/systemd/system/目录'

cp docker.service /etc/systemd/system/

echo '添加文件可执行权限'

chmod +x /etc/systemd/system/docker.service

echo '重新加载配置文件'

systemctl daemon-reload

echo '启动docker'

systemctl start docker

echo '设置开机自启'

systemctl enable docker.service

echo 'docker安装成功'

docker -v

同理,我们也可以制作一键卸载脚本:


touch uninstall.sh

写入以下内容:


#!/bin/sh

 

echo '停止docker'

systemctl stop docker

echo '删除docker.service'

rm -f /etc/systemd/system/docker.service

echo '删除docker文件'

rm -rf /usr/bin/docker*

echo '重新加载配置文件'

systemctl daemon-reload

echo '卸载成功'

赋予脚本执行权限:


chmod +x install.sh

chmod +x uninstall.sh

通过以下命令开始执行安装:


sudo sh install.sh docker-18.06.3-ce.tgz

查看服务状态:


sudo systemctl statue docker

1.5 CentOS 8额外设置

由于 CentOS8 防火墙使用了 nftables,但 Docker 尚未支持 nftables, 我们可以使用如下设置使用 iptables:


修改/etc/firewalld/firewalld.conf文件:


vi /etc/firewalld/firewalld.conf


# 将FirewallBackend修改为iptables

# FirewallBackend=nftables

FirewallBackend=iptables

或者执行以下命令:


firewall-cmd --permanent --zone=trusted --add-interface=docker0

firewall-cmd --reload

2. Window安装Docker

在了解 Windows 版Docker之前,读者首先要知道这是由 Docker 公司提供的一个产品。这意味着它易于下载,并且有一个很灵活的安装器 (installer)。


Windows 版 Docker 需要运行在一个安装了 64 位 Windows 10 操作系统的计算机上,通过启动一个独立的引擎来提供 Docker 环境。


其次,读者需要知晓 Windows 版 Docker 是一个社区版本(Community Edition,CE)的应用,并不是为生产环境设计的。


最后,读者还需要知道 Windows 版 Docker 在某些版本特性上可能是延后支持的。这是因为 Docker 公司对该产品的定位是稳定性第一,新特性其次。


以上 3 点被添加到 Windows 版 Docker 这个安装快捷简单,但并不支持生产环境部署的产品当中。


接下来我们一起了解一下如何安装 Windows 版 Docker。在安装之前,Windows 版 Docker 的环境有以下要求。


Windows 10 Pro(专业版) / Enterprise(企业版) / Education(教育版)(1607 AnniversaryUpdate、Build 14393 或者更新的版本)。Windows 必须是 64 位的版本。需要启用 Windows 操作系统中的 Hyper-V 和容器特性。接下来的步骤会假设读者的计算机已经开启了 BIOS 设置中的硬件虚拟化支持。


如果没有开启,读者需要在机器上执 行下面的步骤。首先,读者需要确认在 Windows 10 操作系统中, Hyper-V 和容器特性已安装并且开启。


右键单击 Windows 开始按钮并选择“应用和功能”页面。

单击“程序和功能”链接。

单击“启用或关闭Windows功能”。

确认Hyper-V和容器复选框已经被勾选,并单击确定按钮。按上述步骤操作完成后,会安装并开启 Hyper-V和容器特性,如下图所示。这时需要重启操作系统。

容器.png

其中,容器特性只有在 summer 2016 Windows 10 Anniversary Update(build 14393)版本或更高版本上才能开启。当读者完成 Hyper-V 和容器特性的安装并重启机器之后,就可以安装 Windows 版 Docker 了。


2.1 下载安装包

访问 Docker 的下载( https://www.docker.com/products/docker-desktop )页面,并单击其中的Download for Windows 按钮。


单击后会跳转到 Docker 商店,需要读者使用自己的 Docker ID 进行登录。


单击任意 Get Docker 下载链接。Docker for Windows 分为稳定版(Stable)和抢鲜版(Edge)。抢鲜版当中包含一些新特性,但是可能不够稳定。单击下载链接后,会将名为 Docker for WindowsInstaller.exe 的安装包下载到默认下载目录。


找到上一步下载的安装包并运行即可。以管理员身份运行安装向导,并按照提示一步一步完成整个安装过程。安装完成后 Docker 会作为系统服务自动启动,并且在 Windows 的通知栏看到 Docker 的大鲸鱼图标。恭喜!到目前为止已经成功完成 Windows 版 Docker 的安装。


2.2 修改镜像源

安装完成后,启动软件,点击设置,修改镜像源:


{

  "builder": {

    "gc": {

      "defaultKeepStorage": "20GB",

      "enabled": true

    }

  },

  "experimental": false,

  "registry-mirrors": [

    "https://hub.dftianyi.top",

    "https://dockerproxy.cn"

  ]

}

点击保存后重启,示意图如下:

保存.png

到这里,基本完成了Docker的安装了。



上一条:Docker镜像原理

下一条:在树莓派上安装Docker