这是我的docker决战到底系列的第二篇实践记录,所有的操作都是基于第一篇在虚拟机中安装的ubuntu系统来进行的,包括这个系列后续的所有更新也都将是如此,除非有特别的指出。这里给出一下我的第一篇实践记录的地址:
Docker决战到底(一)虚拟机中安装ubuntu系统
这一篇实践记录主要讲解的是在ubuntu系统中安装Docker CE,并对其进行配置。因为几乎都是动手操作,所以,关于概念性的东西我不会再进行说明,如果你还不懂什么是docker的话,建议你先去弄明白。
官方文档地址:
https://docs.docker.com/
上面会更加详细的告诉你什么是docker,以及怎么安装docker。你可能会问,既然官方文档都有详细文档,那你为什么还要写这篇呢? 这个问题我也不想过多回答,并不是因为我这里记录比官方文档还详细,而是因为我前面也有指出,这是动手实践记录,更多的是记录,是实践,后续对docker的命令我们会贯穿于实际使用中,那也许就是一些常用命令,所以我也不会特别的去记录哪些命令是常用命令。好了,话不多说,直接进入我们的主题。
Docker环境搭建
一、安装前准备
- 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书,执行如下命令:
$ sudo apt-get update
- 完成后执行如下命令:
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
- 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥,这儿选择使用国内源,执行如下命令:
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 然后,我们需要向 source.list 中添加 Docker 软件源,执行如下命令添加稳定版本Docker CE 的APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly:
$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
二、安装 Docker CE
- 更新 apt 软件包缓存:
$ sudo apt-get update
- 安装 docker-ce:
$ sudo apt-get install docker-ce
- 我们来检查一下安装的docker版本:
$ docker -v
- 建立 docker 组(这儿会提示用户组已经存在):
$ sudo groupadd docker
- 将当前用户加入docker组:
$ sudo usermod -aG docker $USER
退出当前终端并重新登录。
测试docker是否能正常使用,运行hello world:
$ docker run hello-world
- 若能正常输出以上信息,则说明安装成功,功能能正常使用。
三、配置docker
因为网络等原因,我们需要配置镜像加速器,这里采用docker官方的加速器进行配置。
首先执行命令创建一个如下的文件:
$ sudo touch /etc/docker/daemon.json
- 再通过命令编辑文件
$ sudo vi /etc/docker/daemon.json
- 输入如下内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
- 查看一下我们刚才编辑的文件:
$ cat /etc/docker/daemon.json
- 之后重新启动服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
- 检查加速器是否生效,执行如下命令:
$ docker info
Registry Mirrors:
https://registry.docker-cn.com/
- 如果从结果中看到了如上内容,说明配置成功,最后再配置一下开机启动
$ sudo systemctl enable docker
本篇实践记录比较简单, 不需要经过多少复杂的操作,主要是docker安装成功后需要简单配置一下镜像加速器即可。之后所有的操作我们都会通过docker容器环境来进行,一般不会在宿主机上直接进行某某软件安装,但有可能会涉及到某个配置文件需要进行挂载这类的操作。