虚拟容器技术实践
Docker简介
Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
Docker 可以让开发者把他们的应用以及依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,实现虚拟化,方便快捷。
Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式,达到了节省开支的效果。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
安装配置Docker
- 在docker.com中找到mac版本的Docker压缩镜像进行下载,完成安装后启动Docker。
- 打开终端,执行 $ docker version,检查docker的版本,以确认docker服务在运行并可通过客户端链接。
- 配置加速器,选择网易的镜像进行加速
在任务栏点击 Docker for mac 应用图标 -> Perferences -> Daemon -> Registry mirrors。选择“+”,填写加速器地址。修改完成之后,点击 Apply & Restart 按钮,Docker 会重启并应用配置的镜像地址。
- 执行 $ docker info查看配置是否成功
Docker初步使用
- 执行 $ docker run hello-world,确认Docker正常工作
- 执行 $ docker run -d -p 80:80 --name webserver nginx,端口 80 绑定主机端口 80,启动Dockerized Web Server
- 在浏览器中打开http://localhost/,查看nginx主页,因为在上一步中指定了默认的HTTP端口,所以不需要在URL的末尾追加:80 。
- 执行 $ docker container ls,查看容器的详细信息,可以看到前面加载的镜像
镜像
- 简介
镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。镜像是Docker三大组件之一。
- 镜像与容器
类似于面向对象程序设计中的类和实例之间的关系。镜像是静态的定义,容器是镜像运行时的实体。镜像是只读的,永远不会被改变;容器可以被创建、启动、停止、删除、暂停等。
- 相关操作
获取镜像
Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker 会从镜像仓库下载( 默认是 Docker Hub 公共注册服务器中的仓库)。如果想预先下载这个镜像,可以使用 docker pull 命令来下载它。
查找镜像
可以从https://hub.docker.com来搜索镜像,也可以使用 docker search 命令来搜索镜像。如执行 $ docker search httpd 查找 httpd 的镜像。
NAME : 镜像仓库源的名称
DESCRIPTION : 镜像的描述
OFFICIAL : 是否docker官方发布
查找镜像后,可以使用命令 docker pull 来下载需要的镜像。
可以执行 $ docker pull httpd 拉取上一步中查找到的 httpd 官方镜像(即列表中的第一个)
创建镜像
- 下载Tomcat镜像
2. 把war包放入自定义的/Users/gtx/docker目录下(war包下载地址:https://pan.baidu.com/s/1g3WsHCqjryW4ZeMSNciKHQ 密码:55be)
- 进入/Users/gtx/docker目录,执行 $ vi Dockerfile,创建Dockerfile文件
把该目录下的war包复制到第一步的tomcat中
- 执行 $ docker build -t demo:latest . ,通过docker build命令创建镜像
注:-t 表示为该镜像起名称,另外,构建命令后面有个英文实心点,表示当前目录
- 执行 $ docker images,查看镜像是否创建成功
第一条就是demo镜像,证明创建成功
- 执行 $ docker run -d -p 32771:8080 22f34206ec97,端口 8080 绑定主机端口 32770 ,运行自己的镜像(最后一项参数为镜像对应的IMAGE ID)
- 在浏览器访问网页http://0.0.0.0:32770/jenkins