个人简介
作者简介:大家好,我是小鹏linux,运维领域创作者,阿里云ACE认证高级工程师
✒️个人主页:小鹏linux
支持我:点赞+收藏⭐️+留言
格言:你未必出类拔萃,但一定与众不同!
个人社区:小鹏linux欢迎您的加入!
系列专栏:
阶段一:windows基础
阶段二:Linux基础知识
阶段三:shell基础+shell高级
阶段四:学会python,逆天改命
阶段五:Linux网络服务
阶段六:集群原理及架构
阶段七:云原生之Docker
阶段八:云原生之kubernetes(k8s)
阶段九:技能提升
目录
1. Docker概念
2. Docker 比传统虚拟化有哪些优势?
3. Docker 的安装
3.1 通过脚本安装
3.2 CentOS环境下安装Docker
3.3 Ubuntu 环境下安装 Docker
3.4 macOS 环境下安装 Docker
3.5 Windows 10 环境下安装 Docker
3.6 Windows 7、8 环境下安装 Docker
结束语
Doctor相当于一个管理工具 基于Linux container 内核虚拟化技术,由 Golang语言编写的,遵从apache2.0协议,托管在github平台的一个管理引擎。 通过 UFS overlay 实现镜像的层级关连以及容器的可写层挂载 通过 namespace 名字空间实现容器级别的隔离 通过 CGROUP 实现资源的限制 通过 bridge网桥实现容器间的通讯 通过 chroot 实现伪根 |
1)能够将更多的资源提供给客户使用。 2)Docker启动属于秒级启动,虚拟机启动需要几分钟去进行启动。 3)Docker属于操作系统级别的虚拟化,通过Docker守护进程直接和内核进行交互,几乎没有性能损耗;虚拟机是硬件级别的虚拟化,需要通过Hypevisor层,性能损耗比较大 4)Docker更轻量,占用内存小,在同样的硬件环境下,Docker运行的镜像数量要远多于虚拟机数量。 5)Docker通过Namespaces和Cgroups实现对应用程序的进程之间的隔离,虚拟机从操作系统层面实现隔离,所以虚拟机的隔离性更强、安全性更好 |
用户可以使用官方提供的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安装包,自行下载使用。 |
|
[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
配置yum网易源: |
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir back
[root@localhost yum.repos.d]# mv C* back/
浏览器搜素http://mirrors.163.com/.help 点击CentOS,点击下载CentOS7.然后右击浏览器下载的文件, 选择复制下载地址http://mirrors.163.com/.help/CentOS7-Base-163.repo |
[root@localhost yum.repos.d]# curl http://mirrors.163.com/.help/CentOS7-Base-163.repo > 163.repo #配置网易网络源
[root@localhost yum.repos.d]# cd
[root@localhost ~]# yum clean all #清除yum缓存
[root@localhost yum.repos.d]# yum -y install net-tools vim lrzsz iptables-services #安装常用工具
[root@localhost ~]# systemctl stop firewalld #临时关闭防火墙
[root@localhost ~]# systemctl disable firewalld #设置防火墙开机不自启动
[root@localhost ~]# iptables -F #清空防火墙规则
[root@localhost ~]# systemctl start iptables
[root@localhost ~]# systemctl enable iptables
[root@localhost ~]# iptables -F #再次清空防火墙规则
[root@localhost ~]# service iptables save #保存到文件防止下次启动又有规则生成
[root@localhost ~]# shutdown -h now #虚拟机的话建议关机保存快照再开机
Docker在CentOS中的安装方式: |
方式一:> Script(不推荐)企业用的比较多的是19.03版本 |
curl -sSL https://get.docker.com/ | sh
#官方脚本安装:自动检测当前系统并会自动选择安装当前平台能够使用的最新稳定版
systemctl start docker
systemctl enable docker
docker run hello-world
方式二:> Yum安装 |
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 #然后ls查看发现有docker-ce.repo 源产生
方式三:> Rpm安装(推荐) |
浏览器https://mirrors.aliyun.com/docker-ce/linux/centos/7.6/x86_64/stable/Packages/ 下载所需版本的源码包安装 |
国外镜像,比较慢,浏览器搜素DaoCloud | Docker 极速下载: 找到Docker Hub 加速器,点击一次配置无缝使用。找到curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io |
[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 #打开配置文件,修改阿里云镜像加速
将{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]修改为{"registry-mirrors": ["https://kfp63jaj.mirror.aliyuncs.com"]} |
[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
阿里云Docker官网:https://dev.aliyun.com/search.html |
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 ([email protected]) (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版本。 |
首先需要安装apt-transport-https等软件包支持https协议的源: |
$ sudo apt-get update
$ sudo apt-get install \ -
apt -transport-https \
ca-certificates \
curl \
software-properties-common
添加源的gpg密钥: |
$ 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)
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"
添加成功后,再次更新apt软件包缓存: |
$ sudo apt-get update
在成功添加源之后,就可以安装最新版本的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
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: # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺 docker was successfully installed!
在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标。 |
如果需要手动下载,请点击以下链接下载 Install Docker Desktop on Mac |
如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application文件夹即可。 |
从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。 |
点击顶部状态栏中的鲸鱼图标会弹出操作菜单。 |
第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。 |
启动终端后,通过命令可以检查安装后的 Docker 版本。 |
$ docker --version
Docker version 17.09.1-ce, build 19e2cf6
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://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
注意:此方法仅适用于 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 |
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。 如果您必须在电脑上使用虚拟机(例如 Android 应用程序使用的虚拟机或以下其他版本),请不要使用 Hyper-V ! |
程序和功能: |
启用或关闭 Windows 功能 |
检测Hyper-V |
也可以通过命令启用 Hyper-V ,请管理员来启动菜单并以身份运行 PowerShell,执行以下命令: |
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
点击开始使用 Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会注册要求登录: |
点击下载 Docker for Windows 安装文件,一路完成完成安装。 |
安装完成后,Docker会自动启动。通知栏上会出现个小鲸鱼的图标,这表示Docker正在运行。 桌边还有三个图标,如下图所示: 我们可以在执行版本 docker version 查看号,docker hello-world 来编写测试。 如果没启动,你可以在 Windows 搜索 Docker 来启动: |
启动后,也可以在通知栏上看到小鲸鱼图标: 如果启动中遇到因 WSL 2 导致地错误,请安装WSL 2。 安装之后,就可以打开PowerShell并运行以下命令检测是否运行成功: |
码头工人运行你好世界-世界
在成功运行之后应该会出现以下信息: |
win7、win8等需要利用工具箱来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 安装比较简单,运行起来,点自动化就可以了,可以勾选自己需要的组件: |
docker toolbox 是一个工具集,它主要包含以下一些内容:
|
下载完成后,安装成功后,桌边会出现三个图标,直接点击如下图所示: |
点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。 如果系统显示用户账户控制窗口来运行VirtualBox修改你的电脑,选择Yes。 |
$符号那你可以输入以下命令来执行。 |
$ docker 运行你好世界-世界
无法在本地找到图像“hello-world:latest”无法在本地找到图像“hello-world:latest” 为了生成此消息,Docker 采取了以下步骤:为了生成此消息,Docker采取了以下步骤: |
要尝试更雄心勃勃的事情,您可以运行Ubuntu容器: |
$ docker run -it ubuntu bash