Docker 架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
Docker安装(centos7系统环境)
- 查看centos系统版本信息
[root@es-node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@es-node1 ~]# uname -r
3.10.0-327.el7.x86_64
确认CentOS 系统的内核版本高于 3.10
- 安装docker(yum方式)
首先yum配置改为阿里的开源镜像
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
sudo yum makecache fast
安装 Docker-ce:
sudo yum -y install docker-ce
启动 Docker 后台服务:
sudo systemctl start docker
测试运行 hello-world:
docker run hello-world
-
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json 来配置 Daemon
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
Docker 安装 Tomcat
-
docker pull tomcat
用docker search命令查找Docker Hub上的镜像
[root@es-node1 ~]# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 2259 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 60 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 51 [OK]
davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 with… 34 [OK]
......
有OFFICIAL标识的即为官方镜像,拉取:(如果不指定安装版本则默认为最新版本的镜像)
[root@es-node1 ~]# docker pull tomcat
Using default tag: latest
查看已有镜像:
[root@es-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
onegis/centos 7 10e036c56a05 24 hours ago 202MB
onegis/mycentos 7 10e036c56a05 24 hours ago 202MB
hello-world latest fce289e99eb9 2 weeks ago 1.84kB
tomcat latest 1a51cb5e3006 2 weeks ago 462MB
......
- 运行tomcat
[root@es-node1 ~]# docker run --name tomcat -p 8080:80 -d tomcat
d2a8a38cadc18e3ca809b37d5914ffe11ff65fd20a3636bb19d5c1e3ebef79a8
-p 8080:8080:将容器的8080端口映射到主机的8080端口
-d :后台运行
--name:命名容器
最后可以是image的id,也可以是name
查看docke镜像进程:
[root@es-node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2a8a38cadc1 tomcat "catalina.sh run" 10 seconds ago Up 5 seconds 8080/tcp, 0.0.0.0:8080->80/tcp tomcat
ab2cf232d9b0 training/webapp "python app.py" 24 hours ago Up 24 hours 0.0.0.0:32769->5000/tcp cocky_nash
......
看到tomcat运行,访问外部服务器查看:
- 停止移除容器
[root@es-node1 ~]# docker stop tomcat
tomcat
移除容器:
[root@es-node1 ~]# docker container rm tomcat
tomcat
Docker下的tomact中war包部署
- 先将war包上传到centos系统下
- 将war包放入docker下的tomcat容器中:
[root@es-node1 webapps]# docker cp onegisplatform.war 094eca8c378c:/usr/local/tomcat/webapps
ps:094eca8c378c为容器ID
- 进入tomcat容器查看war包是否解压:
[root@es-node1 webapps]# docker exec -it 094eca8c378c /bin/bash
看到webapps文件下的目录已经解压:
root@094eca8c378c:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager onegisplatform onegisplatform.war