_让咱们的开发环境镜像化搭建的记录(整理内容)html
若是镜像须要定制化:建议直接拉取一个系统镜像而后自定义:java
docker pull centos:7
能够参照: 基于docker官网镜像centos7配置Java运行环境mysql
注意自定义的脚本中export的用法:git
export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08" exprot JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64/ export PATH=$JAVA_HOME/bin:$PATH sh /usr/tomcat/bin/catalina.sh run
(说明下,github

docker pull tomcat:8.0.36-jre8web
编写dockerfile的时候推荐使用idea的插件:**Docker integration**  ### 1.1静态导入 (这个是一种方式,可是实际用起来这个会被代替掉,在这里只是说明有这种方式):  而插件的效果为:  其代码为:
#这是一个测试的DockerFile #auther lijunhao FROM tomcat:8.0.36-jre8sql
MAINTAINER lijunhao junhao.li@newtouch.cn COPY ./dockerDemo.war /usr/local/tomcat/webapps/docker
- 开始制做镜像
#########到所在目录下 cd dir ######制做镜像(注意后面有个.) docker build -t myweb:v1 .数据库
校验:  ### 1.2动态挂载(推荐使用) 动态挂载的好处是能够经过命令去挂载到容器外的某个文件地址,不须要每次从新去制做镜像 Dockerfile的内容为:
#这是一个测试的DockerFile #auther lijunhao (VOLUME 表示容器内部的一个地址为挂载点) FROM tomcat:8.0.36-jre8centos
MAINTAINER lijunhao junhao.li@newtouch.cn VOLUME /usr/local/tomcat/webapps
- 开始制做镜像
#########到所在目录下 cd dir ######制做镜像(注意后面有个.) docker build -t myweb:v2 .
- 启动容器
docker run -itd -p 8086:8080 -v /opt/dockerDemo:/usr/local/tomcat/webapps myweb:v2
而进入容器的效果为:  以上2者的验证为(因为使用的war包是同样的,在这里只用一张效果图图来表示): **若是须要去掉包名的操做,请把源码放到ROOT文件挂载进去**  ### 2.关于mysql镜像(项目须要基本上都会有初始表以及初始数据)  分析MySQL 5.6的Dockerfile下方是连接: [MYSQL-Dockerfile1](http://www.runoob.com/docker/docker-install-mysql.html) [MYSQL-Dockerfile2](http://www.runoob.com/docker/docker-install-mysql.html) 其有一行为:
RUN mkdir /docker-entrypoint-initdb.d
并会在下面**循环**执行mysql脚本:  总和以上,使用动态挂载功能,初始化脚本放在 /opt/mysqlsql,数据库date放在 /opt/mysqldata: 脚本数据为: 
docker run --name mysql-test -v /opt/mysqlsql:/docker-entrypoint-initdb.d -v /opt/mysqldata:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 -itd eda6a4884645
测试的结果为:  ### 3,openfire镜像
docker pull sameersbn/openfire:3.10.3-16
启动镜像(这里的端口映射到外面的端口最好是同样的,不然在使用的时候不管是跳转仍是功能比较容易出错):
docker run --name openfire -d --restart=always
--publish 9090:9090 --publish 5222:5222 --publish 7777:7777
--volume /opt/docker/openfire:/var/lib/openfire
sameersbn/openfire:3.10.3-16
### 4,gitlab镜像 最全资料请在下方连接 [docker-gitlab最全攻略](https://github.com/sameersbn/docker-gitlab)
https://github.com/sameersbn/docker-gitlab
### 5.书写compose **5.1,简介 Compose能够把各个容器关联起来,是用来定义一个或者多个容器应用的工具。适合在单机环境中部署一个或者多个容器,并自动把多个容器关联起来 用YML文件来定义多容器应用,使用docker-compose up 使应用运行起来,本质上来讲:Compose把YML文件转成docker命令参数,经过解析容器之间的依赖关系来顺序地启动容器。 每一个定义的服务都至少包含build和image两个命令中的一个,build是要在执行的是docker build命令,image是直接启服务