1 Windows 安装 Docker
1.1 安装前须知
- Windows版本的Docker需要运行在一个安装64位的Window 10操作系统的计算机上,并且通过启动一个独立的引擎来提供Docker环境
- Windows版本的Docker是一个社区版本,并不是为生产环境设计的
- 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
无论是方式一还是方式二,都需要开启容器功能
- 方式一可应用于离线环境
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.service:vi /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-reload和sudo systemctl enable docker配置Docker开机自启动 - 使用命令
sudo systemctl start docker启动Docker - 查看
Docker是否启动成功:docker -v、docker info
3.2 公网环境下Centos安装Docker
- 更新系统:
yum update - 卸载旧版本的
Docker:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装
Docker依赖项:yum install -y yum-utils,提供yum-config-manager访问工具 - 添加
Docker仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - 安装
Docker Engine:yum install -y docker-ce docker-ce-cli containerd.io - 启动
Docker服务:systemctl start docker - 配置
Docker开机启动:systemctl enable docker - 查看
Dokcer状态:systemctl status docker
3.3 安装Docker Compose
- 访问
https://github.com/docker/compose/releases/,下载对应版本的文件,例如:docker-compose-linux-x86_64; - 将下载的文件拷贝到
/usr/local/bin文件夹中; - 执行命令
sudo chmod +x /usr/local/bin/docker-compose,修改文件的访问权限; - 使用命令
docker-compose --version测试,是否安装成功
4 特别说明
4.1 Windows Container 介绍
Windows Container是指微软在Windows上的虚拟化实践,可以提供系统级别的虚拟化。而我们经常听到的容器化通常指的是Linux Container,即:基于Linux的Container实践。
Windows Container主要包括2部分:Windows Container on Windows(下文简称Windows Containers)和Linux Container on Windows(下文简称Linux Containers),Windows Container on Windows由Windows操作系统原生实现,Linux Container on Windows借助Hyper-V实现。
Windows操作系统安装Docker Desktop for Windows时,默认使用Linux Containers,此时,Docker daemon是运行在Hyper-V虚拟机中的一个轻量级的Linux上。这种情况下,Windows版的Docker只能运行Linux的容器。
以上两种容器话方式,Docker均支持,但是不能同时使用,可在2种容器化方式中切换,切换过程中数据不会丢失,切换方法如下:
- 右键通知栏中的
Docker鲸鱼图标,选择Switch to Windows Containers...切换至Windows Container; - 进入
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配置方法: