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
的,但是如果安装了老版本的话可以使用下面的命令进行卸载。
$ sudo apt-get remove docker docker-engine docker.io containerd runc复制代码
安装 Docker CE
安装Docker CE
有多种不同的方式:
-
设置
Docker
的存储库,然后安装。这种方式便于安装及更新,也是最推荐的方式。 -
下载DEB软件包,手动安装并完全手动管理升级。
-
在测试和开发环境中,部分用户选择使用自动便捷脚本来安装
Docker
。
本篇博客将介绍第一种安装方式。
设置 Docker 存储库
- 更新
apt
包索引:
$ sudo apt-get update复制代码
- 允许
apt
通过HTTPS使用存储库来安装软件:
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common复制代码
- 添加
Docker
官方 GPG 密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -复制代码
添加完成之后,使用下面命令进行验证秘钥,通过搜索指纹的最后8个字符,验证现在是否具有指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
的密钥
$ sudo apt-key fingerprint 0EBFCD88pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88uid [ unknown] Docker Release (CE deb)sub rsa4096 2017-02-22 [S]复制代码
- 使用下面的命令去设置稳定版的存储库。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"复制代码
安装 Docker CE
- 更新
apt
包索引:
$ sudo apt-get update复制代码
- 安装最新版本的
Docker CE
和containerd
:
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io复制代码
- 验证
Docker
使用下面的命令查看Docker
的版本
$ docker -v复制代码
然后使用下面的命令可以运行hello-world
程序,因为Docker
中还没有hello-world
程序的镜像,所以会先pull
(下载)下来然后运行。
$ sudo docker run hello-world复制代码
如果看到打印 Hello for Docker!
说明程序已经运行成功了。
卸载 Docker
- 卸载 Docker CE
$ sudo apt-get purge docker-ce复制代码
- 主机上的镜像、容器、卷或者自定义配置文件是不会自动删除的,需要使用下面的命令手动删除这些文件:
$ sudo rm -rf /var/lib/docker复制代码
Docker 的使用
Docker 的启动、关闭等
可以使用下面的命令对Docker
进行启动、关闭、重启等操作。
# 开启 Docker$ sudo service docker start# 关闭 Docker$ sudo service docker stop# 重启 Docker$ sudo service docker restart复制代码
也可以使用systemctl
命令进行操作
# 开启 Docker$ sudo systemctl start docker# 关闭 Docker$ sudo systemctl stop docker# 重启 Docker$ sudo systemctl restart docker复制代码
iamge 镜像文件
Docker 需要把应用程序及其相关的依赖打包成为一个image
镜像文件,这些镜像文件可以存储在云端的存储库中,用户可以将云端的镜像文件下载到本地,然后通过这个文件,生成Docker容器
的实例。
所以当你将你的应用程序及其依赖打包成一个image文件之后,可以将其上传到云端的仓库中,然后在任何一个装有Docker的机器中运行即可,这就是一次配置,到处运行,可以说是非常之方便了。
Docker
官方的仓库是 ,这是最重要,也是最常用的一个image仓库了。
运行一个程序
下面我们使用上面使用过的hello-world
进行说明image
的使用。
- 查看本地
image
列表
使用下面的命令查看本地已经存在的image
文件都有哪些,可以查看这些镜像的名称,标签,镜像ID,被创建时间,镜像大小。
# 查看本地 image$ sudo docker image ls复制代码
- 下载
image
到本地
使用下面的命令将image
文件从云端下载到本地。
# 下载 image$ sudo docker pull hello-world复制代码
- 运行
image
使用下面的命令可以运行image
。
$ sudo docker run hello-world复制代码
如果看到打印 Hello for Docker!
说明hello-world
程序已经运行成功了。
- 删除
image
使用下面的命令删除本地的image
文件。
# 删除 image$ sudo docker image rm -f hello-world复制代码
其它
关于Docker
的知识还有很多,我会在后续的文章继续介绍,欢迎您持续关注本博客。
更多技术文章欢迎关注我的博客主页: