docker 是一个开源的应用容器引擎,基于go 语言并遵从apache2.0协议开源。
docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iphone 的 app),更重要的是容器性能开销极低。
docker的应用场景
- web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的openshift或cloud foundry平台来搭建自己的paas环境。
docker的优点
1、简化程序:
docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,便可以实现虚拟化。docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入docker中进行管理。方便快捷已经是 docker的最大优势,过去需要用数天乃至数周的 任务,在docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。docker 帮你打包你的纠结!比如 docker 镜像;docker 镜像中包含了运行环境和配置,所以 docker 可以简化部署多种应用实例工作。比如 web 应用、后台应用、数据库应用、大数据应用比如 hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,docker 改变了高性能必然高价格的思维定势。docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
1.docker的安装:
docker支持以下的centos版本:
- centos 7 (64-bit)
- centos 6.5 (64-bit)或更高的版本
1.2前提条件
目前,centos 仅发行版本中的内核支持 docker。
docker 运行在 centos 7 上,要求系统为64位、系统内核版本为 3.10 以上。
docker 运行在centos-6.5或更高的版本的 centos 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
我的操作系统版本:
centos7官方英文安装docker CE说明:https://docs.docker.com/install/linux/docker-ce/centos/
centos7中文安装docker CE说明https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/
docker 软件包和依赖包已经包含在默认的 centos-extras 软件源里,可以更新yum源选择yum install的方法安装,也可以选择下载rpm安装包
官方下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/packages/
您可以根据您的需要以不同的方式安装docker ce:
大多数用户设置docker的存储库并从中进行安装,以便安装和升级任务。这是推荐的方法。
有些用户下载rpm软件包并手动安装,并完全手动管理升级。这对于在无法访问互联网的空隙系统上安装docker等情况很有用。
1.3使用wget 命令进行下载rpm包
创建一个downloads文件夹,然后使用wget命令进行下载
1
2
|
[root@sungeek downloads] # wget https://download.docker.com/linux/centos/7/x86_64/stable/packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
[root@sungeek downloads] # yum install docker-ce-18.03.0.ce-1.el7.centos.x86_64.rpm
|
1.4使用存储库进行安装(推荐方法-不过国外存储库国内拉取很慢)
首次在新主机上安装docker ce之前,需要设置docker存储库。之后,您可以从存储库安装和更新docker。
设置存储库
1.安装所需的包。yum-utils
提供了yum-config-manager
效用,并device-mapper-persistent-data
和lvm2
由需要devicemapper
存储驱动程序。
1
2
3
|
[root@sungeek ~] # yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
|
2.使用以下命令设置stable的存储库。即使您想从edge或test存储库安装构建,也总是需要stable的存储库。
1
2
3
|
[root@sungeek ~] # yum-config-manager \
--add-repo \
https: //download .docker.com /linux/centos/docker-ce .repo
|
3.可选:启用edge和test存储库。这些存储库包含在docker.repo
上面的文件中,但默认情况下处于禁用状态。您可以将它们与稳定的存储库一起启用。
1
2
|
[root@sungeek ~] # yum-config-manager --enable docker-ce-edge
[root@sungeek ~] # yum-config-manager --enable docker-ce-test
|
您可以通过使用该标志运行命令来禁用edge或test存储库。要重新启用它,请使用标志。以下命令禁用边缘存储库。yum-config-manager
--disable
--enable
1
|
[root@sungeek ~] # yum-config-manager --disable docker-ce-edge
|
注意:从docker 17.06开始,稳定版本也被推到edge并test版本库。
安装 docker ce-----[我是把服务器设置了vpn才能拉取,国外资源访问很慢经常超时]
1.更新yum
软件包索引。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@sungeek ~] # yum makecache fast
loaded plugins: fastestmirror, langpacks
loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.shu.edu.cn
* updates: mirrors.shu.edu.cn
base | 3.6 kb 00:00:00
docker-ce-edge | 2.9 kb 00:00:00
docker-ce-stable | 2.9 kb 00:00:00
docker-ce- test | 2.9 kb 00:00:00
extras | 3.4 kb 00:00:00
updates | 3.4 kb 00:00:00
docker-ce- test /x86_64/primary_db | 47 kb 00:00:00
metadata cache created
|
如果这是自添加 docker 镜像仓库以来您首次刷新软件包索引,系统将提示您接受 gpg 密钥,并且将显示此密钥的指纹。验证指纹是否正确,并且在正确的情况下接受此密钥。指纹应匹配060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
。
2.安装最新版本的 docker ce,或者转至下一步以安装特定版本。
1
|
[root@sungeek ~] # yum install docker-ce
|
警告:如果您启用了多个 docker 镜像仓库,进行安装 或者更新而不在yum install
或yum update
命令中指定版本将始终安装可用的最高版本, 这可能无法满足您的稳定性需求。
3.在生产系统中,您应该安装特定版本的 docker ce,而不是始终使用最新版本。列出可用版本。此示例使用sort -r
命令按版本号(从最高到最低)对结果进行排序,并且已被截断。
注:此yum list
命令仅显示二进制软件包。如果还需要显示 源软件包,请从软件包名称中省略.x86_64
。
1
2
|
[root@sungeek ~] # yum list docker-ce.x86_64 --showduplicates | sort -r
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
|
返回的列表取决于启用了哪些存储库,并且特定于您的centos版本(.el7
在此示例中由后缀指示)。
例如,通过完全限定的软件包名称(它是软件包名称(docker-ce
))和版本字符串(第2列)直到第一个连字符来安装特定版本,并用连字符(-
)分隔docker-ce-18.03.0.ce
1
2
|
[root@sungeek ~] # yum install docker-ce-<version>
[root@sungeek ~] # yum install docker-ce-docker-ce-18.03.0.ce-1.el7.centos
|
升级 docker ce
如需升级 docker ce,首先运行yum makecache fast
,然后按照安装说明执行操作,并选择您要安装的新版本。
说明:国内通过上面这个方法会显示拉取超时,因为国外资源访问很慢,经常会超时!
https://download.docker.com/linux/centos/7/x86_64/test/repodata/f4f313b71260886934a949b16efa15e5032e0b16c4cd26c1e87fdbf935d039d1-primary.sqlite.bz2: [errno 12] timeout on https://download.docker.com/linux/centos/7/x86_64/test/repodata/f4f313b71260886934a949b16efa15e5032e0b16c4cd26c1e87fdbf935d039d1-primary.sqlite.bz2: (28, 'operation timed out after 30001 milliseconds with 0 out of 0 bytes received')
trying other mirror.
1.5 启动docker进程
1
2
3
|
[root@localhost downloads] # systemctl start docker
[root@localhost downloads] # systemctl status docker
[root@localhost downloads] # systemctl enable docker --设置开机自启动docker服务
|
1.6验证安装是否成功
直接输入docker列出该命令的用法
测试运行第一个容器:hello-world
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。
2.最常用的几条命令
2.1使用docker images查看镜像
1
2
3
|
[root@localhost downloads] # docker images
repository tag image id created size
docker.io /hello-world latest e38bc07ac18e 2 months ago 1.85 kb
|
2.2使用docker ps -a 查看容器
1
2
3
|
[root@localhost downloads] # docker ps -a
container id image command created status ports names
3fa4f2de1c01 hello-world "/hello" 4 minutes ago exited (0) 4 minutes ago elastic_lumiere
|
docker ps也是最常用的命令,-a :显示所有的容器,包括未运行的。
2.3使用docker logs查看容器控制台输出
获取容器的日志
docker logs [container]
2.4卸载docker
1.查询安装过的包
1
2
3
|
[root@sungeek ~] # yum list installed | grep docker
docker-client.x86_64 2:1.13.1-63.git94f4240.el7.centos @extras
docker-common.x86_64 2:1.13.1-63.git94f4240.el7.centos @extras
|
2.删除安装的软件包
1
2
|
[root@sungeek ~] # yum -y remove docker-client.x86_64
[root@sungeek ~] # yum -y remove docker-common.x86_64
|
3.删除镜像/容器等
1
|
[root@sungeek ~] # rm -rf /var/lib/docker/
|
4.输入docker或docker --version验证是否卸载
1
2
3
4
|
[root@sungeek ~] # docker --version
- bash : /usr/bin/docker : no such file or directory
[root@sungeek ~] # docker
- bash : /usr/bin/docker : no such file or directory
|
5.导入加载进来觉得不合适可以使用 docker rm 容器id 、 docker rmi 镜像id 来删掉。
移除所有的容器和镜像:
还有更多的命令可以参考docker命令大全:http://www.zzvips.com/article/132741.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/Sungeek/p/9182433.html#sg1.3