Docker有Docker CE(社区版)和Docker EE(企业版)两个版本,Docker CE 是免费的,但是包含了完整的 Docker 功能,本文基于CentOS 7和Docker CE搭建Docker环境。
CentOS 7安装
-
安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
-
为了提升安装速度,可以使用阿里云提供的yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新并安装Docker CE
yum makecache fast yum -y install docker-ce
-
开启Docker服务
service docker start
-
安装校验
docker version
- 进入阿里云镜像加速器页面(需要登录),或者进入DaoCloud镜像站(不需要登录),根据提示配置镜像加速器
-
查看镜像加速器配置
docker info
Windows 10安装
通常Docker运行在Linux环境下,但是由于开发,调试工作往往在Windows平台完成,因此,Docker Desktop for Windows往往是必不可少的。
首先,到Docker官网下载Docker Desktop for Windows,直接点击安装。
安装完成后,Docker会自动运行,如果一切顺利,自然万事大吉,但事情往往不会尽如人意,比如可能会出现如下错误:
这是因为Docker for Windows需要依赖一下两个条件:
- 安装并运行Hyper-V(需要Windows 10专业版),详见,在Windows 10上安装Hyper-V,结果如下:
- 到BIOS中启用虚拟化,具体配置跟电脑相关,不做介绍,最后结果如下,显示已启用则表示设置正常:
经过以上两个步骤以后,Docker就可以正常运行了。
基于VMware安装
前面提到的方法简便快捷,在一般情况下是适用的。但是,由于Hyper-V必须运行在Windows 10专业版及以上的版本(官方声明请勿在 Windows 10 家庭版上安装 Hyper-V 角色)。
另外,众所周知,Hyper-V跟VMware不兼容,这就导致正在使用VMware的用户无法使用Docker for Windows,本节介绍基于VMware驱动的DockerMachine安装方法,以适应部分习惯于使用VMware的用户。
安装DockerMachine
- 下载DockerToolbox-19.03.1.exe;
-
通过DockerToolbox安装DockerMachine(不要双击,通过命令不安装VirtualBox);
./DockerToolbox-19.03.1.exe /COMPONENTS="Docker,DockerMachine"
- 将Docker Compose for Windows 和 Git for Windows(如果已经安装过则不需要安装)一并安装,前者是用于定义和运行多容器应用程序的工具,后者用来运行
start.sh
脚本。 -
将DockerToolbox安装目录下(我的是
D:\Program Files\Docker Toolbox
)的start.sh
文件内容替换为如下脚本,其中PATH
指向VMware的安装目录(我的是D:\Program Files (x86)\VMware\VMware Workstation
);#!/bin/bash export PATH="$PATH:/mnt/d/Program Files (x86)/VMware/VMware Workstation" trap '[ "$?" -eq 0 ] || read -p "Looks like something went wrong in step ´$STEP´... Press any key to continue..."' EXIT VM=${DOCKER_MACHINE_NAME-default} DOCKER_MACHINE=./docker-machine.exe BLUE='\033[1;34m' GREEN='\033[0;32m' NC='\033[0m' if [ ! -f "${DOCKER_MACHINE}" ]; then echo "Docker Machine is not installed. Please re-run the Toolbox Installer and try again." exit 1 fi vmrun.exe list | grep \""${VM}"\" &> /dev/null VM_EXISTS_CODE=$? set -e STEP="Checking if machine $VM exists" if [ $VM_EXISTS_CODE -eq 1 ]; then "${DOCKER_MACHINE}" rm -f "${VM}" &> /dev/null || : rm -rf ~/.docker/machine/machines/"${VM}" #set proxy variables if they exists if [ -n ${HTTP_PROXY+x} ]; then PROXY_ENV="$PROXY_ENV --engine-env HTTP_PROXY=$HTTP_PROXY" fi if [ -n ${HTTPS_PROXY+x} ]; then PROXY_ENV="$PROXY_ENV --engine-env HTTPS_PROXY=$HTTPS_PROXY" fi if [ -n ${NO_PROXY+x} ]; then PROXY_ENV="$PROXY_ENV --engine-env NO_PROXY=$NO_PROXY" fi "${DOCKER_MACHINE}" create -d vmwareworkstation $PROXY_ENV "${VM}" fi STEP="Checking status on $VM" VM_STATUS="$(${DOCKER_MACHINE} status ${VM} 2>&1)" if [ "${VM_STATUS}" != "Running" ]; then "${DOCKER_MACHINE}" start "${VM}" yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}" fi STEP="Setting env" eval "$(${DOCKER_MACHINE} env --shell=bash ${VM})" STEP="Finalize" clear cat << EOF ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ EOF echo -e "${BLUE}docker${NC} is configured to use the ${GREEN}${VM}${NC} machine with IP ${GREEN}$(${DOCKER_MACHINE} ip ${VM})${NC}" echo "For help getting started, check out the docs at https://docs.docker.com" echo cd docker () { MSYS_NO_PATHCONV=1 docker.exe "$@" } export -f docker if [ $# -eq 0 ]; then echo "Start interactive shell" exec "$BASH" --login -i else echo "Start shell with command" exec "$BASH" -c "$*" fi
安装vmware驱动程序
下载docker-machine-driver-vmwareworkstation.exe,并保存到docker-machine.exe
的同级目录(D:\Program Files\Docker Toolbox
);
创建DockerMachine
- 右键桌面Docker Quickstart Terminal快捷方式,指定git bash安装路径(如果上面选择安装了Git for Windows,则不用修改)
- 将路径
D:\Program Files\Docker Toolbox
添加到环境变量; - 启动VMware服务,双击Docker Quickstart Terminal快捷方式创建基于VMware的Docker Machine;
-
也可通过如下命令创建
docker-machine create --driver=vmwareworkstation dev
-
验证安装
PS C:\> docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - vmwareworkstation Running tcp://192.168.72.129:2376 v19.03.5 dev - vmwareworkstation Running tcp://192.168.72.128:2376 v19.03.5
-
登录Docker实例
docker-machine ssh default docker-machine ssh dev
连接Docker Engine
配置环境变量,使得本机可以连接虚拟机中运行的Docker Engine。
-
查看环境变量
PS C:\> docker-machine env default $Env:DOCKER_TLS_VERIFY = "1" $Env:DOCKER_HOST = "tcp://192.168.72.129:2376" $Env:DOCKER_CERT_PATH = "C:\Users\xxx\.docker\machine\machines\default" $Env:DOCKER_MACHINE_NAME = "default" $Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true" # Run this command to configure your shell: # & "D:\Program Files\Docker Toolbox\docker-machine.exe" env default | Invoke-Expression
-
配置环境变量
& "D:\Program Files\Docker Toolbox\docker-machine.exe" env default | Invoke-Expression
-
检验安装
PS C:\> docker version Client: Version: 19.03.1 API version: 1.40 Go version: go1.12.7 Git commit: 74b1e89e8a Built: Wed Jul 31 15:18:18 2019 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.5 API version: 1.40 (minimum version 1.12) Go version: go1.12.12 Git commit: 633a0ea838 Built: Wed Nov 13 07:28:45 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683
至此,Docker就安装完成了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。