Docker 入门
Docker 是什么?
Docker是一种操作系统级虚拟化技术(或者容器技术),相比较硬件级虚拟化技术它不需要虚拟硬件基础而是直接虚拟运行库来提供进程运行。
入门操作
安装 Docker
Linux
前置条件
因为Docker 需要使用Linux 的CGroups 和 Namespace 功能,所以必须使用包含这两个功能的Linux 内核(内核版本>3.10,64位)。
如果不确定请使用以下命令查看
$ uname -r
安装操作
因为Ubuntu是最常见的Linux 发行版,所以此处以Ubuntu 举例,此处仅引用官网公布的安装方法。
请注意,Ubuntu 上的 Docker CE 仅支持overlay2, aufs 和 btrfs 的存储格式,而官网推荐的存储格式顺位为overlay2(最新的Linux 发行版和内核)>aufs(需手动配置)>btrfs。
删除旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
假使apt-get 报告并没有任何历史包可以跳过这个命令。
请注意现有的Docker CE 在 apt-get 库中名字为 docker-ce
设定源
此处为了简便把所有的bash 代码写在了一块代码块中
sudo apt-get update # Update the apt package index
# 此处为后续操作的所需依赖,虽然一般大部分组建已经被预安装
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common # Install packages to allow apt to use a repository over HTTPS
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #Add Docker’s official GPG key
# 需要一个if 语句方便自动检查
sudo apt-key fingerprint 0EBFCD88 # To verify user have the key with correct fingerprint.
#以下内容建议改为case switch 根据命令自行调整
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable" #Use the following command to set up the stable repository. To add the nightly or test
# repository, add the word nightly or test (or both) after the word stable in the commands
安装 Docker CE
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
如果我们想要挑选并安装某个固定版本的Docker CE
apt-cache madison docker-ce # version check
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
为了验证 Docker是否安装成功可以是使用以下命令
sudo docker run hello-world
当然了,贴心的docker 官方也提供了一个安装脚本,对自己网络有信心的朋友可以使用
curl -fsSL https://get.docker.com/ | sh
非Linux 环境
由于Docker 运行需要Linux 内核所以在非Linux 环境下需要使用其官方提供的客户端(内含虚拟机)。但是根据书《Docker容器实战:原理、架构与应用》记录自Windows Server 2016 开始已经提供了Docker 所需的全套支持。
Mac os
Docker Toolbox
Docker Toolbox 会在系统内安装 docker, docker-compose以及docerk-machine。为了提供运行环境它会一并安装VirtualBox。 在安装时Toolbox 会使用Docker machine 配备一个被命名为default 的VirtualBox 虚拟机以方便docker engine运行一个名为"boot2docker"的Linux 分区。 此时docker engine 会在$HOME/.docker/machine/machines/default目录下运行。
在正式使用 docker 和 docker-compose 之前我们需要以下命令让他们知道Docker Engine 的运行文件夹。
eval $(docker-machine env default)
Docker desktop for Mac os
Docker desktop 是一款原生的Mac os 应用,它会使用HyperKit 来替代 VirtualBox.
Docker desktop 的 docker-machine 将会预备docker 运行所需的虚拟机,而Docker Engine API 将会暴露在一个位于 /var/run/docker.sock
(默认)的位置。
基本上来说安装完Docker desktop for Mac os 就可以正常用命令行使用docker了。
注意事项
一般来说Docker Toolbox 与 Docker desktop 不共存,所以在安装Docker desktop 之前最好使用以下命令确认是否有Docker Toolbox 的环境参数。
$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/<your_username>/.docker/machine/machines/default
如果有如上输出就使用以下命令清除环境参数
unset DOCKER_TLS_VERIFY
unset DOCKER_CERT_PATH
unset DOCKER_MACHINE_NAME
unset DOCKER_HOST
Windows
Windows 安装Docker 就很简单了,直接前往官网下载Docker desktop 安装即可。