携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

1. Docker概念
|
|---|
| Doctor相当于一个管理工具********基于 Linux container 内核虚拟化技术,由 Golang 语言编写的,遵从apache 2.0 协议,托管在 github 平台的一个 管理引擎。通过 UFS overlay 实现镜像的层级关连以及容器的可写层挂载通过 namespace 名字空间 实现容器级别的隔离通过 CGROUP 实现资源的限制通过 bridge网桥 实现容器间的通讯********通过 chroot 实现伪根 |
2. Docker 比传统虚拟化有哪些优势?
|
|---|
| 1)能够将更多的资源提供给客户使用。2)Docker启动属于秒级启动,虚拟机启动需要几分钟去进行启动。3)Docker属于操作系统级别的虚拟化,通过Docker守护进程直接和内核进行交互,几乎没有性能损耗;虚拟机是硬件级别的虚拟化,需要通过Hypevisor层,性能损耗比较大4)Docker更轻量,占用内存小,在同样的硬件环境下,Docker运行的镜像数量要远多于虚拟机数量。5)Docker通过Namespaces和Cgroups实现对应用程序的进程之间的隔离,虚拟机从操作系统层面实现隔离,所以虚拟机的隔离性更强、安全性更好 |
3. Docker 的安装
3.1 通过脚本安装
|
|---|
| 用户可以使用官方提供的shell脚本来在Linux系统(目前支持Ubuntu. Debian、 Ora이eserver、Fedora、Centos、OpenSuse. Gentoo 等常见发行版) 上安装 Docker 的最新正式 版本,该脚本会自动检测系统信息并进行相应配置: |
$ curl -fsSL https://get.docker.com/ | sh
![点击并拖拽以移动]()
$ wget -qO- https://get.docker.com/ | sh
![点击并拖拽以移动]()
|
|---|
| 如果想尝鲜最新功能,可以使用下面的脚本来安装最新的“尝鲜”版本。但要注意,非 稳定版本往往意味着功能还不够稳定,不要在生产环境中使用: |
$ curl -fsSL https://test.docker.com/ | sh
![点击并拖拽以移动]()
|
|---|
| 另外,也可以从 store.docker.com/search?offering=community&q=&type=edition 找到各个 平台上的Docker安装包,自行下载使用。 |
3.2 CentOS环境下安装Docker
3.2.1 准备工作
|
|---|
| 1. 先安装一个CentOS7.6的虚拟机。要求:硬盘大小大于等于100GB,网络我们选择仅主机模式。 |
- 编辑虚拟机设置,镜像文件选择CentOS-7-x86_64-Minimal-1810.iso
- 添加一块新网卡。网卡一:仅主机模式(工作环境都是仅主机模式)。网卡二:NAT模式(用来上网的)。
- 将虚拟机的NAT模式dhcp获取方式勾选上
- 开启虚拟机,进行安装。切记手动分区,/boot分区为800MB,/swap分区为4GB |
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
![点击并拖拽以移动]()
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.232.165
NETMASK=255.255.255.0
![点击并拖拽以移动]()
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
![点击并拖拽以移动]()
BOOTPROTO=dhcp
ONBOOT=yes
![点击并拖拽以移动]()
[root@localhost ~]# systemctl restart network #重启网卡
[root@localhost ~]# vi /etc/selinux/config
![点击并拖拽以移动]()
|
|---|
| 关闭selinux。(若要临时关闭selinux,执行setenforce 0即可)打开配置文件,修改如下: |
SELINUX=disabled
![点击并拖拽以移动]()
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir back
[root@localhost yum.repos.d]# mv C* back/
![点击并拖拽以移动]()
[root@localhost yum.repos.d]
[root@localhost yum.repos.d]
[root@localhost ~]
[root@localhost yum.repos.d]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
![点击并拖拽以移动]()
3.2.2 开始安装
|
|---|
| 方式一:> Script(不推荐)企业用的比较多的是19.03版本 |
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
docker run hello-world
![点击并拖拽以移动]()
yum install -y yum-utils
cd /etc/yum.repos.d/
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
![点击并拖拽以移动]()
[root@localhost ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
[root@localhost ~]# vim /etc/docker/daemon.json #打开配置文件,修改阿里云镜像加速
![点击并拖拽以移动]()
[root@localhost ~]# systemctl restart docker #重启服务
[root@localhost ~]# docker info #查看生效了
![点击并拖拽以移动]()
|
|---|
| ****备注:****小于等于1.16 版本镜像加速方法: |
cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
chmod 777 /etc/systemd/system/docker.service
vim /etc/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current --registry-mirror=https://kfp63jaj.mirror.aliyuncs.com \
systemctl daemon-reload
systemctl restart docker
ps -ef | grep docker
![点击并拖拽以移动]()
3.3 Ubuntu 环境下安装 Docker
3.3.1 系统要求
|
|---|
| Ubuntu操作系统对Docker的支持十分成熟,可以支持包括x86_64、armhf、s390x (IBM . Z)、ppc641e等系统架构,只要是64位即可。’ Docker目前支持的最低Ubuntu版本为14.04LTS,但实际上从稳定性上考虑,推荐使用 16.04 LTS或18.0.4 LTS版本,并且系统内核越新越好,以支持Docker最新的特性。用户可以通过如下命令检查自己的内核版本详细信息: |
$ uname -a
Linux localhost 4.9.36-x86_64-generic
![点击并拖拽以移动]()
$ cat /proc/version
Linux version 4.9.36-x86_64-generic (maker@linux.com) (gcc version 4.9.2 (Debian 4.9.2-10))
![点击并拖拽以移动]()
|
|---|
| 如果使用Ubuntu 16.04 LTS版本,为了让Docker使用aufs存储,推荐安装如下两个 软件包: |
$ sudo apt-get update
$ sudo apt-get install -y \
1inux-image-extra-$(uname -r) \
1inux-image-extra-virtual
![点击并拖拽以移动]()
|
|---|
| 注意:Ubuntu发行版中,LTS ( Long-Term-Support)意味着更稳定的功能和更长期(目前为 5年)的升级支持,生产环境中推荐尽量使用LTS版本。 |
3.3.2 添加镜像源
|
|---|
| 首先需要安装apt-transport-https等软件包支持https协议的源: |
$ sudo apt-get update
$ sudo apt-get install \ -
apt -transport-https \
ca-certificates \
curl \
software-properties-common
![点击并拖拽以移动]()
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK
![点击并拖拽以移动]()
|
|---|
| 确认导入指纹为 “9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C OEBF CD88” 的 GPG 公钥: |
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C OEBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
![点击并拖拽以移动]()
$ lsb_release -cs
xenial
![点击并拖拽以移动]()
|
|---|
| 一般情况下,Ubuntu 16.04 LTS 代号为 xenial, Ubuntu 18.04 LTS 代号为 bionic接下来通过如下命令添加Docker稳定版的官方软件源,非xenia!版本的系统注意修改 为自己对应的代号: |
$ sudo add-apt-repository \
ndeb [arch=amd64] https://download.docker.com/linux/ubuntu \ xenial \ stable"
![点击并拖拽以移动]()
$ sudo apt-get update
![点击并拖拽以移动]()
3.3.3 开始安装Docker
|
|---|
| 在成功添加源之后,就可以安装最新版本的Docker 了,软件包名称为docker-ce,代表 是社区版本: |
$ sudo apt-get install -y docker-ce
![点击并拖拽以移动]()
|
|---|
| 如果系统中存在较旧版本的Docker,会提示是否先删除,选择是即可。除了基于手动添加软件源的方式之外,也可以使用官方提供的脚本来自动化安装Docker: |
$ sudo curl -sSL https://get.docker.com/ | sh
![点击并拖拽以移动]()
|
|---|
| 安装成功后,会自动启动Docker服务.用户也可以指定安装软件源中其他版本的Docker: |
$ sudo apt-cache madison docker-ce
docker-ce | 17.11.0-ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages
docker-ce | 17.10. 〇~ce-0~ubuntu | https : //download.d.ocker.com/linux/ubuntu xenial/edge amd64 Packages
docker-ce \ 17.09. l~ce- 0~ubuntu | https : //download.d.ocker. com/1 inux/ubuntu xenial/stable amd64 Раска으es
$ sudo apt-get instal1 docker-ce=17.11.〇~ce-O~ubuntu
![点击并拖拽以移动]()
3.4 macOS 环境下安装 Docker
3.4.1 使用 Homebrew 安装
|
|---|
| macOS 我们可以使用 Homebrew 来安装 Docker。Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装: |
$ brew install --cask --appdir=/Applications docker
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
&
![点击并拖拽以移动]()
|
|---|
| 在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标。 |
3.4.2 手动下载安装
![点击并拖拽以移动]()
|
|---|
| 如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application文件夹即可。 |
![点击并拖拽以移动]()
|
|---|
| 从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。 |
![点击并拖拽以移动]()
![点击并拖拽以移动]()
|
|---|
| 第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。 |
![点击并拖拽以移动]()
|
|---|
| 启动终端后,通过命令可以检查安装后的 Docker 版本。 |
$ docker --version
Docker version 17.09.1-ce, build 19e2cf6
![点击并拖拽以移动]()
3.4.3 镜像加速
|
|---|
| 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:hub-mirror.c.163.com。在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。 |
![点击并拖拽以移动]()
|
|---|
| 之后我们可以通过 docker info 来查看是否配置成功。 |
$ docker info
...
Registry Mirrors:
http://hub-mirror.c.163.com
Live Restore Enabled: false
![点击并拖拽以移动]()
3.5 Windows 10 环境下安装 Docker
|
|---|
| 注意: 此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版! |
|
|---|
| Docker 并不是一个通用的,它依赖于存在并运行的 Linux 内核于已环境的工具。Docker 真正的 Linux 是在已经运行的下一个隔离的文件环境,因此,它执行的效果制造于就地部署的 Linux主机。Docker 必须部署在相应的 Linux 内核的系统上。如果其他系统想部署 Docker,则必须安装一个虚拟 Linux 环境。 |
![点击并拖拽以移动]()
|
|---|
| 在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,然后在安装 Linux 系统的虚拟机中运行 Docker。Docker Desktop 是 Docker 在 Windows 10 和 macOS 上运行的方法的官方安装方式,这个仍然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。Docker Desktop 官方下载地址: [Install Docker Desktop on Windows | Docker Documentation](hub.docker.com/editions/co… "Install Docker Desktop on Windows | Docker Documentation") |
3.5.1 安装 Hyper-V
|
|---|
| Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。如果您必须在电脑上使用虚拟机(例如 Android 应用程序使用的虚拟机或以下其他版本),请不要使用 Hyper-V ! |
2.5.2 开启 Hyper-V
![点击并拖拽以移动]()
![点击并拖拽以移动]()
![点击并拖拽以移动]()
![点击并拖拽以移动]()
|
|---|
| 也可以通过命令启用 Hyper-V ,请管理员来启动菜单并以身份运行 PowerShell,执行以下命令: |
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
![点击并拖拽以移动]()
2.5.3 安装 Docker Desktop for Windows
编辑
2.5.4 安装运行文件
|
|---|
| 点击下载 Docker for Windows 安装文件,一路完成完成安装。 |
![点击并拖拽以移动]()
|
|---|
| 安装完成后,Docker会自动启动。通知栏上会出现个小鲸鱼的图标,这表示Docker正在运行。桌边还有三个图标,如下图所示:我们可以在执行版本 docker version 查看号,docker hello-world 来编写测试。如果没启动,你可以在 Windows 搜索 Docker 来启动: |
![点击并拖拽以移动]()
|
|---|
| 启动后,也可以在通知栏上看到小鲸鱼图标:如果启动中遇到因 WSL 2 导致地错误,请安装WSL 2。安装之后,就可以打开PowerShell并运行以下命令检测是否运行成功: |
码头工人运行你好世界-世界
![点击并拖拽以移动]()

3.6 Windows 7、8 环境下安装 Docker
![点击并拖拽以移动]()
|
|---|
| docker toolbox 是一个工具集,它主要包含以下一些内容:- Docker CLI - 客户端,使用运行 docker 引擎创建和容器。 |
- Docker Machine - 可以让你在 Windows 的引擎中运行 docker 命令。
- Docker Compose - 使用运行 docker-compose 命令。
- Kitematic - 这是 Docker 的 GUI 版本。
- Docker QuickStart shell - 这是一个已经配置好Docker的环境。
- Oracle VM Virtualbox - 虚拟机。 |
|
|---|
| 下载完成后,安装成功后,桌边会出现三个图标,直接点击如下图所示: |
![点击并拖拽以移动]()
|
|---|
| 点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。如果系统显示用户账户控制窗口来运行VirtualBox修改你的电脑,选择Yes。 |

$ docker 运行你好世界-世界
![点击并拖拽以移动]()
|
|---|
| 无法在本地找到图像“hello-world:latest”无法在本地找到图像“hello-world:latest” 拉存储库hello-world拉存储库你好-世界 91c95931e552:下载完成91c95931e552 :下载完成 a8219747be10:下载完成:下载完成 状态:为 hello-world 下载了更新的图像:最新状态:为hello - world下载了更新的图像:最新 来自 Docker 的您好。来自Docker的您好。 此消息表明您的安装似乎工作正常。此消息表明您的安装似乎工作正常。 为了生成此消息,Docker 采取了以下步骤:为了生成此消息,Docker采取了以下步骤: 1. Docker Engine CLI 客户端联系了 Docker Engine 守护进程。1. Docker Engine CLI 客户端联系了Docker Engine守护进程。 2. Docker Engine 守护进程从 Docker Hub 拉取“hello-world”镜像。 (假设它还没有在本地可用。) 3. Docker 引擎守护进程从该镜像创建了一个新容器,该容器运行 生成您当前正在阅读的输出的可执行文件。 4. Docker Engine 守护程序将该输出流式传输到 Docker Engine CLI 客户端,后者将其发送 到您的终端。 |
|
|---|
| 要尝试更雄心勃勃的事情,您可以运行Ubuntu容器: |
$ docker run -it ubuntu bash
![点击并拖拽以移动]()
👑👑👑结束语👑👑👑
