文章目录
转载请注明原始出处:http://blog.csdn.net/a464057216/article/details/71110825
后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
简介
Docker是软件容器平台,用来解决软件交付中的部署问题,比如在自己的机器上软件运行正常,部署在其他机器时由于环境依赖踩了很多坑。运维人员在机器上部署多个容器应用可以提高机器的资源利用率,容器间环境隔离保证了应用程序的安全性。在Linux、Windows或Mac平台,企业使用Docker可以在敏捷交付流程中安全、快速地交付新需求。
什么是容器
通过Docker,软件运行的依赖被封装到隔离的容器中。与虚拟机不同之处在于,Docker不包含整个OS,只包含软件运行必须的库和配置,这样使容器轻量化,保证了应用的快速部署。
开发人员
Docker把建立软件运行环境的工作自动化,比如不需要重复搭建、配置数据库系统,重复配置不同版本的语言工具链,开发人员可以将精力聚焦于功能开发。容器是非常容易构建、共享和运行的。团队中新人报道后,不需要花费较多时间熟悉软件部署流程,从Docker Hub拉取Docker镜像,修改配置后就可以快速开始调试、熟悉程序。
运维人员
Docker提高软件交付效率,可以快速交付新需求或实现Bug修复。Docker允许开发和运维自动化地、安全地实现构建、交付、测试、部署,可以省略部署文档的维护。整个团队在开发、预上线、产品用的是同一个镜像,避免由于环境差异引起交付过程中各种问题。
安装Docker
- Docker EE(Enterprise Edition):针对企业级开发,在生产环境大规模部署应用,注重安全性,需付费使用。企业版也分为基础版、标准版、高级版。Docker EE提供两年的技术支持。
- Docker CE(Community Edition):适合开发者或小型团队学习Docker使用,提供Mac、Windows、Linux三种版本。Docker CE分为stable、test、nightly版。stable版是发布的稳定版;test版是稳定版的预发布版本,供测试使用;nighlty版是开发中的下次发布版本的每日构建版本。推荐学习Docker时,使用经过测试的stable版。
- Docker Cloud:官方平台,允许在多个云服务上部署应用,如Digital Ocean,Packet,SoftLink等。
Docker CE
Docker CE在GitHub上有公开的Docker Engine和Docker Client代码库。Docker CE的发布版本号为点号分割的三位数字,格式为YY.MM.<path>
,每6个月发布一次,提供7个月的补丁支持。nightly版本号格式为0.0.0-YYYYmmddHHMMSS-<commit hash>
,供Docker的开发者调试使用,不对使用者保证功能和稳定性。test版本号格式为test-YY.MM
,测试通过后才会正式发布。stable版本的版本号格式为stable-YY.MM
,一旦发布后任何补丁提交都基于发布分支。
Docker EE、Docker CE x86_64及Docker CE ARM版本对各个操作系统及云平台的详细支持可以参考https://docs.docker.com/install/#supported-platforms。
以Cent OS上安装Docker为例介绍安装Docker的过程。
Requirements
CentOS 7,64位
删除旧版本
旧版本的Docker叫做docker
或docker-engine
,需要先删除旧版本的Docker:
# Written by: CSDN - Mars Loo的博客
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
删除软件后,/var/lib/docker
目录下的镜像、容器、卷、网络都被保留。Docker CE现在叫做docker-ce
,docker EE叫做docker-ee
。
安装新版本
两种方法:
1. 通过yum,容易安装和升级(推荐)。
2. 下载RPM包手工安装,升级也采用手工升级,没有网络的环境下推荐使用这种方式。
下面以Docker CE的yum安装为例说明安装过程。
设置Docker的yum仓库
安装提供yum-config-manager
功能的yum-utils
,然后设置使用stable版本的Docker CE:
# Written by: CSDN - Mars Loo的博客
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装Docker CE
1.更新yum包索引:
# Written by: CSDN - Mars Loo的博客
sudo yum makecache fast
如果是添加完源以后第一次更新,会显示Docker CE的指纹信息,如果是060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
则可以接受。
2.安装最新版本的Docker CE:
# Written by: CSDN - Mars Loo的博客
sudo yum install docker-ce
3.安装特定版本的Docker CE(可选)
产品环境通常要求安装特定版本的Docker CE而不总是最新的。查询所有的Docker CE版本:
# Written by: CSDN - Mars Loo的博客
$ yum list docker-ce.x86_64 --showduplicates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Installed Packages
docker-ce.x86_64 17.03.0.ce-1.el7.centos @docker-ce-stable
Available Packages
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
第一列表示包名,第二列表示版本号,第三列表示repo名,如果要安装特定的版本,可以使用如下命令(<VERSION>
用版本号替代):
# Written by: CSDN - Mars Loo的博客
sudo yum install docker-ce-<VERSION>
4.启动Docker
# Written by: CSDN - Mars Loo的博客
sudo systemctl start docker
5.登录一个Docker Registry,默认的是Docker Hub,如果无法连接Docker Hub官网,可以在网易凤巢创建一个账号之后登录https://c.163.com:
$ sudo docker login hub.c.163.com
Username: marsloo
Password:
Login Succeeded
也可以修改Docker配置文件/etc/sysconfig/docker
默认连接到国内的https://c.163.com:
# Written by: CSDN - Mars Loo的博客
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com"
6.通过运行hello-world
镜像确认Docker是否成功安装:
# Written by: CSDN - Mars Loo的博客
sudo docker run hello-world
该命令下载一个测试用的镜像并在容器中运行,容器运行以后,打印一条消息并退出。
docker version
可以查看Docker的服务端和客户端版本,docker ps
可以查看正在运行的容器信息,docker ps -a
查看所有容器信息(包括已经运行结束的)。
卸载Docker
# Written by: CSDN - Mars Loo的博客
sudo yum remove docekr-ce
如果需要删除镜像、容器、卷和配置:
# Written by: CSDN - Mars Loo的博客
sudo rm -rf /var/lib/docker
升级Docker CE
首先执行sudo yum makecache fast
,其次按照“安装指定版本”的流程安装最新版本。
非root用户管理Docker
默认情况Docker 守护进程绑定到Unix socket而不是TCP端口,且该Unix socket的所有者是root
。如果不想每次通过sudo
使用Docker ,可以创建名为docker
的group,将用户加入docker
用户组,Docker 守护进程启动时会给docker
组赋予该Unix socket读、写权限:
# Written by: CSDN - Mars Loo的博客
sudo groupadd docker
sudo usermod -aG docker $USER
退出并重新登录,然后:docker run hello-world
即可。
系统启动时启动Docker
RHEL、CentOS、Fedora、Ubuntu 16.04及以上使用systemd
配置系统启动时启动哪些服务,Ubuntu 14.10及以下使用upstart
命令。
比如:
# Written by: CSDN - Mars Loo的博客
sudo systemctl enable docker
如果不想让docker随系统启动,将enable
参数变成disable
参数。Docker安装后默认采用upstart
配置为随系统启动,如果不想这样,可以使用如下命令:
# Written by: CSDN - Mars Loo的博客
echo manual | sudo tee /etc/init/docker.override
sudo chkconfig docker on
接下来欢迎继续阅读下一篇文章:Docker的初级使用:容器。
如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!