Docker 之 ubuntu 安装

docker-logo.png

Docker 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟机方式相比具有众多的优势。Docker 可以更高效的利用系统资源更快速的启动时间一致的运行环境持续交付和部署更轻松的迁移更轻松的维护和扩展

博主第一次使用Docker就深深喜欢上了这种方式,一次配置,到处运行,不用再反反复复的配置环境可以说是非常的方便了。本篇博客就来说一说Docker的安装及基本使用方法,后续还会不定时的更新Docker系列博客。

对比传统虚拟机

Docker是什么?Docker属于容器的一种技术封装,提供更为简单易用的使用接口,让开发运维人员可以更方便快捷的使用容器

特性容器虚拟机
启动秒级分钟级
硬盘使用一般为 MB一般为 GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个

从上面对比来看,容器的各方面性能及特性是优于虚拟机的。

Docker 的安装

Docker是一个开放源码的产品,分为 社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了,本篇博文的教程也只是针对社区版。

安装环境及版本:

  • 系统:ubuntu 18.04 LTS
  • Docker 版本:18.9.05

英文好的小伙伴也可以直接阅读官方文档,本文只详细介绍 Ubuntu 系统下的 Docker 安装,其他系统的安装请自行参考官方文档。

卸载老版本

一般来说Ubuntu系统中默认是不会安装Docker的,但是如果安装了老版本的话可以使用下面的命令进行卸载。

1
$ sudo apt-get remove docker docker-engine docker.io containerd runc

安装 Docker CE

安装Docker CE有多种不同的方式:

  1. 设置Docker的存储库,然后安装。这种方式便于安装及更新,也是最推荐的方式。

  2. 下载DEB软件包,手动安装并完全手动管理升级。

  3. 在测试和开发环境中,部分用户选择使用自动便捷脚本来安装Docker

本篇博客将介绍第一种安装方式。

设置 Docker 存储库

  1. 更新apt包索引:
1
$ sudo apt-get update
  1. 允许apt通过HTTPS使用存储库来安装软件:
1
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  1. 添加Docker官方 GPG 密钥:
1
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加完成之后,使用下面命令进行验证秘钥,通过搜索指纹的最后8个字符,验证现在是否具有指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88的密钥

1
2
3
4
5
6
$ sudo apt-key fingerprint 0EBFCD88

pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
  1. 使用下面的命令去设置稳定版的存储库。
1
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

安装 Docker CE

  1. 更新apt包索引:
1
$ sudo apt-get update
  1. 安装最新版本的 Docker CEcontainerd:
1
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  1. 验证Docker

使用下面的命令查看Docker的版本

1
$ docker -v

然后使用下面的命令可以运行hello-world程序,因为Docker中还没有hello-world程序的镜像,所以会先pull(下载)下来然后运行。

1
$ sudo docker run hello-world

如果看到打印 Hello for Docker!说明程序已经运行成功了。

docker-run-hello-world.png

卸载 Docker

  1. 卸载 Docker CE
1
$ sudo apt-get purge docker-ce
  1. 主机上的镜像、容器、卷或者自定义配置文件是不会自动删除的,需要使用下面的命令手动删除这些文件:
1
$ sudo rm -rf /var/lib/docker

Docker 的使用

Docker 的启动、关闭等

可以使用下面的命令对Docker进行启动、关闭、重启等操作。

1
2
3
4
5
6
7
8
# 开启 Docker
$ sudo service docker start

# 关闭 Docker
$ sudo service docker stop

# 重启 Docker
$ sudo service docker restart

也可以使用systemctl命令进行操作

1
2
3
4
5
6
7
8
# 开启 Docker
$ sudo systemctl start docker

# 关闭 Docker
$ sudo systemctl stop docker

# 重启 Docker
$ sudo systemctl restart docker

iamge 镜像文件

Docker 需要把应用程序及其相关的依赖打包成为一个image镜像文件,这些镜像文件可以存储在云端的存储库中,用户可以将云端的镜像文件下载到本地,然后通过这个文件,生成Docker容器的实例。

所以当你将你的应用程序及其依赖打包成一个image文件之后,可以将其上传到云端的仓库中,然后在任何一个装有Docker的机器中运行即可,这就是一次配置,到处运行,可以说是非常之方便了。

Docker 官方的仓库是 Docker Hub,这是最重要,也是最常用的一个image仓库了。

运行一个程序

下面我们使用上面使用过的hello-world进行说明image的使用。

  1. 查看本地image列表

使用下面的命令查看本地已经存在的image文件都有哪些,可以查看这些镜像的名称,标签,镜像ID,被创建时间,镜像大小。

1
2
# 查看本地 image
$ sudo docker image ls

docker-image-ls

  1. 下载image到本地

使用下面的命令将image文件从云端下载到本地。

1
2
# 下载 image
$ sudo docker pull hello-world

docker-pull.png

  1. 运行image

使用下面的命令可以运行image

1
$ sudo docker run hello-world

如果看到打印 Hello for Docker!说明hello-world程序已经运行成功了。

  1. 删除image

使用下面的命令删除本地的image文件。

1
2
# 删除 image
$ sudo docker image rm -f hello-world

docker-image-rm.png

使用中国官方镜像加速

通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。

Docker 中国官方镜像加速可通过 registry.docker-cn.com 访问。该镜像库只包含流行的公有镜像。私有镜像仍需要从美国镜像库中拉取。

我们可以使用以下命令直接从该镜像加速地址进行拉取:

1
2
3
4
$ docker pull registry.docker-cn.com/myname/myrepo:mytag

# 例如
$ docker pull registry.docker-cn.com/library/ubuntu:16.04

为了永久性保留更改,我们可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

1
2
3
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

修改保存后重启 Docker 以使配置生效,重启命令 sudo service docker restart

其它

关于Docker的知识还有很多,我会在后续的文章继续介绍,欢迎您持续关注本博客。

James wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!