1. 程式人生 > >docker5-使用Dockerfile建立nginx+springboot+mysql+redis容器&&&&&彩蛋

docker5-使用Dockerfile建立nginx+springboot+mysql+redis容器&&&&&彩蛋

前端容器

一、檔案目錄結構(為了顯而易見,顯示在win下 應該在linux下 ls展示)

這裡寫圖片描述

二、Dockerfile編寫 vim Dockerfile

FROM  centos
MAINTAINER 2018-08-31 zhaojianyu [email protected]
RUN  yum -y install gcc*  make pcre-devel zlib-devel
ADD nginx-1.10.1.tar.gz  /usr/src/
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
COPY HManager /usr/local/nginx/HManager
WORKDIR /usr/src/nginx-1.10.1/
RUN useradd -s /sbin/nologin -M nginx
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
EXPOSE 8888
WORKDIR /
RUN nginx
CMD ["nginx", "-g", "daemon off;"]

註釋
1.安裝環境
2.將配置檔案(個人修改)移動到容器內配置檔案
3.將專案copy到nginx目錄下
4.暴露埠8888
5.容器內啟動nginx

三、構建映象

docker build -t 標籤:版本 .

問題:容器名:便籤只能用小寫字母 後面有.

這裡寫圖片描述

四、執行映象

docker run -d -p 80:8888 映象名:標籤
docker run -d -p 80:80 --name manager_nginx --net host 516891ef1315
docker run -p 8308:8308 --net host --name manager_backend -v /opt/source:/source manager-backend


docker run -p 80:80 -d --name nginx -v /opt:/usr/share/nginx nginx

  • 更多引數參考本博其他文章

至此 ,前端服務啟動成功

五、打包映象為tar

參考更優文章:點選連線

六、映象的匯入

映象備份與恢復
docker save -o update1.tar update
docker load < update1.tar

後端容器

檔案目錄

這裡寫圖片描述

Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
COPY config config
COPY source source
COPY m****l.jar /opt/m****l.jar
RUN sh -c 'touch /managerTool.jar'
ENV JAVA_OPTS=""
EXPOSE 9999
ENTRYPOINT [ "sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /opt/m****l.jar"]

註釋
1.從倉庫拉取frolvlad/alpine-oraclejdk8:slim映象(自帶jdk)
2.將需要的配置檔案,資原始檔拉入
3.將jar包複製到需要的目錄 此處jar檔名打碼**
4.執行java-jar命令,jvm引數調優可以陣列形式寫入

mysql容器

拉取mysql映象

docker pull hub.c.163.com/library/mysql:latest
###檢視mysql映象
這裡寫圖片描述

執行mysql帶不帶資料庫

設定密碼
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<你的密碼> hub.c.163.com/library/mysql
設定密碼和建立一個數據庫
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<你的密碼> -e MYSQL_DATABASE=jpress<你的庫名> --name <容器名> hub.c.163.com/library/mysql

success

這裡寫圖片描述

redis

FROM centos:7.5.1804
MAINTAINER 1045152332@qq.com
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#安裝YUM源
RUN yum -y update && yum -y install epel-release && yum -y install redis

EXPOSE 6379

#安裝清理快取檔案
RUN yum clean all

#修改繫結IP地址
RUN sed -i -e '[email protected] [email protected] [email protected]' /etc/redis.conf
#關閉保護模式
RUN sed -i -e '[email protected] [email protected] [email protected]' /etc/redis.conf
#設定密碼
RUN echo "requirepass 1234567" >> /etc/redis.conf


#啟動
ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]
CMD []

docker build -t ops-redis:latest .

docker run -d --name=HOPS_redis -p6379:6379 ops-redis

額外:jpress部落格系統

war+tomcat打包到容器
mysql容器(上面的)

Dockerfile

拉取帶tomcat的映象

from hub.c.163.com/library/tomcat
MAINTAINER zhaojianyu [email protected]
COPY jpress.war /usr/local/tomcat/webapps

同級內儲存war包(github自行下載jpress)

這裡寫圖片描述

執行 .代表當前目錄

docker build -t 名字:latest .

執行

docker run -d -p 8888:8080 id

mysql容器(上面)