部署開發鏡像化的筆記(逐步整理)

_讓咱們的開發環境鏡像化搭建的記錄(整理內容)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

1,準備tomcat鏡像

(說明下,github

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/12234646_GDXC.png "在這裏輸入圖片標題")

docker pull tomcat:8.0.36-jre8web

編寫dockerfile的時候推薦使用idea的插件:**Docker integration**

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/12235412_eO3O.png "在這裏輸入圖片標題")

### 1.1靜態導入


(這個是一種方式,可是實際用起來這個會被代替掉,在這裏只是說明有這種方式):

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/12235040_2TRN.png "在這裏輸入圖片標題")

而插件的效果爲:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/12235054_RJ1Q.png "在這裏輸入圖片標題")

其代碼爲:

#這是一個測試的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 .數據庫

校驗:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/12235956_IwWc.png "在這裏輸入圖片標題")

### 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

而進入容器的效果爲:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13002223_AAsK.png "在這裏輸入圖片標題")

以上2者的驗證爲(因爲使用的war包是同樣的,在這裏只用一張效果圖圖來表示):

**若是須要去掉包名的操做,請把源碼放到ROOT文件掛載進去**

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13001618_nhhT.png "在這裏輸入圖片標題")


### 2.關於mysql鏡像(項目須要基本上都會有初始表以及初始數據)

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13225844_seCa.png "在這裏輸入圖片標題")

分析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腳本:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13234719_9EtE.png "在這裏輸入圖片標題")

總和以上,使用動態掛載功能,初始化腳本放在 /opt/mysqlsql,數據庫date放在 /opt/mysqldata:

腳本數據爲:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13235221_aWo8.png "在這裏輸入圖片標題")

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

測試的結果爲:

![輸入圖片說明](https://static.oschina.net/uploads/img/201612/13235001_v1gt.png "在這裏輸入圖片標題")

### 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是直接啓服務
相關文章
相關標籤/搜索