一文概述Windows和Linux下Docker环境安装步骤

513 阅读6分钟

1 Windows 安装 Docker

1.1 安装前须知

  1. Windows版本的Docker需要运行在一个安装64位的Window 10操作系统的计算机上,并且通过启动一个独立的引擎来提供Docker环境
  2. Windows版本的Docker是一个社区版本,并不是为生产环境设计的
  3. Windows版本的Docker在某些版本、某些特性是延后支持的,只是因为Docker公司对该产品的定位是稳定性第一

1.2 系统要求

  • Windows 10 Pro / Enterprise / Education ( 1607 Anniversary Update、Build 14393 或者 更新的版本)
  • Windows必须是64位版本
  • 需要启用Windows操作系统的Hyper-v和容器特性

1.3 启用Hyper-v和容器特性

  • 右键Windows开始按钮,选择“程序和功能”,打开“程序和功能”面板
  • 单击“启用或关闭Windows功能”,打开“服务器管理器”面板
  • 在“添加角色和功能向导”面板中,根据向导提示执行,直到进入“功能”页面
  • 勾选“Hyper-v”和“容器”,单击“确定”按钮,自动安装功能
  • 安装完成后重启操作系统

1.4 安装Docker

  • 访问Docker Desktop,单击“Download for Windows”,下载安装包
  • 找到下载的安装包并运行即可
  • 在“命令提示符”窗口中,输入命令docker version,验证docker是否安装成功

2 Windows Server 2016 安装 Docker

无论是方式一还是方式二,都需要开启容器功能

  1. 方式一可应用于离线环境

2.1 Windows Server 开启容器功能

  • 右键Windows开始按钮,选择“程序和功能”,打开“程序和功能”面板
  • 单击“启用或关闭Windows功能”,打开“服务器管理器”面板
  • 在“添加角色和功能向导”面板中,根据向导提示执行,直到进入“功能”页面
  • 勾选“容器”选项
  • 点击“安装”按钮,安装完成后,需要重启操作系统

2.1.1 方式一

  • 下载(提取码:s31w)并拷贝文件至Windows Server服务器
  • 解压文件
  • 将解压后的子文件夹docker拷贝至C:\Program Files
  • C:\ProgramData文件夹中创建Docker文件夹,然后在Docker文件夹中创建config文件
    • 默认情况下C:\ProgramData文件夹被隐藏,选择“查看”,勾选“隐藏的项目”,取消ProgramData的隐藏状态
  • config文件夹中创建daemon.json文件,文件内容如下:
{
	"insecure-registries":[]
}
  • 打开“系统属性”面板,单击“环境变量”,编辑Path变量
  • C:\Program Files\docker路径添加到Path变量,保存配置
  • 打开“命令提示符”窗口,输入命令dockerd --register-service,将docker注册为服务
  • 打开“服务”面板,启动“Docker Engine”服务,并配置其开机自启动
  • 在“命令提示符”窗口中,输入命令docker version,查看docker是否安装成功

2.2 方式二

  • 以管理员身份运行Windows Powershell
  • 运行命令Install-Module DockerMsftProvider -Force安装Docker包管理工具
  • 运行命令Install-Package Docker -ProviderName DockerMsftProvider -Force安装Docker,安装完成后会看到Docker的版本信息
  • 在“命令提示符”窗口中,输入命令docker version,查看docker是否安装成功

3 Centos安装Docker

3.1 内网环境下Centos安装Docker

3.1.1 准备工作

  • 使用命令systemctl stop firewalld关闭防火墙
  • 使用命令systemctl disable firewalld取消防火墙服务开机启动
  • 使用命令vi /etc/selinux/config编辑文件,设置SELINUX=disabled,保存,退出,并重启机器

3.1.2 安装Docker

  • 下载拷贝Docker压缩文件至服务器/root路径
  • 使用命令tar -xzvf docker-19.03.9.tgz解压文件
    • 解压后,可以对docker文件夹中的所有文件修改权限:chmod +x <file_name>
  • 使用命令sudo cp docker/* /usr/bin将解压后的文件夹拷贝至bin文件夹目录下
  • 进入/usr/bin文件夹,使用命令sudo docker安装Docker
  • 使用命令docker -v查看Docker版本

3.1.3 配置docker.service

  • 使用命令创建docker.servicevi /etc/systemd/system/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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s


[Install]
WantedBy=multi-user.target

3.1.3 配置Docker开机启动

  • 分别执行命令sudo systemctl daemon-reloadsudo systemctl enable docker配置Docker开机自启动
  • 使用命令sudo systemctl start docker启动Docker
  • 查看Docker是否启动成功:docker -vdocker info

3.2 公网环境下Centos安装Docker

  1. 更新系统:yum update
  2. 卸载旧版本的Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
  1. 安装Docker依赖项:yum install -y yum-utils,提供yum-config-manager访问工具
  2. 添加Docker仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. 安装Docker Engineyum install -y docker-ce docker-ce-cli containerd.io
  4. 启动Docker服务:systemctl start docker
  5. 配置Docker开机启动:systemctl enable docker
  6. 查看Dokcer状态:systemctl status docker

3.3 安装Docker Compose

  1. 访问https://github.com/docker/compose/releases/,下载对应版本的文件,例如:docker-compose-linux-x86_64
  2. 将下载的文件拷贝到/usr/local/bin文件夹中;
  3. 执行命令sudo chmod +x /usr/local/bin/docker-compose,修改文件的访问权限;
  4. 使用命令docker-compose --version测试,是否安装成功

4 特别说明

4.1  Windows Container  介绍

Windows Container是指微软在Windows上的虚拟化实践,可以提供系统级别的虚拟化。而我们经常听到的容器化通常指的是Linux Container,即:基于LinuxContainer实践。

Windows Container主要包括2部分:Windows Container on Windows(下文简称Windows Containers)和Linux Container on Windows(下文简称Linux Containers),Windows Container on WindowsWindows操作系统原生实现,Linux Container on Windows借助Hyper-V实现。

Windows操作系统安装Docker Desktop for Windows时,默认使用Linux Containers,此时,Docker daemon是运行在Hyper-V虚拟机中的一个轻量级的Linux上。这种情况下,Windows版的Docker只能运行Linux的容器。

以上两种容器话方式,Docker均支持,但是不能同时使用,可在2种容器化方式中切换,切换过程中数据不会丢失,切换方法如下:

  1. 右键通知栏中的Docker鲸鱼图标,选择Switch to Windows Containers...切换至Windows Container
  2. 进入C:\Program Files\Docker\Docker目录,在命令行窗口中执行命令.\dockercli -SwitchDaemon

4.2 Windows Server 2016 中的 Docker

Windows Server 2016操作系统如果不做任何配置,直接安装Docker,它使用的Windows Contianers容器方式,Linux类的Docker镜像不能在上面运行。

Windows Server 2016操作系统也支持添加Hyper-V角色,但需提前检测当前系统是否满足Hyper-v的需求

  • 检测方式

在命令行窗口或者PowerShell中,输入命令Systeminfo.exe,查看Hyper-v要求的部分。详细内容可查看官网说明

示例:Windows Server 2016虚拟机,虚拟机不支持开启Hyper-V

  • Hyper-V配置方法:

官网提供的配置方法

Windows Server 2016 部署Hyper-V