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