简单的docker-compose编写介绍(包含 nginx+tomcat 实例演示)
生活随笔
收集整理的這篇文章主要介紹了
简单的docker-compose编写介绍(包含 nginx+tomcat 实例演示)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡單的docker-compose編寫介紹(包含實例演示)
- 一、docker compose常用命令
- 二、docker compose配置常用字段
- 三、docker compose 演示(tomcat+nginx)
- 1、dockerfile撰寫 nginx 鏡像
- 2、dockerfile撰寫 tomcat 鏡像
- 3、撰寫docker compose.yml文件
- 4、開啟,并查看運行狀態(tài)
- 5、進行網(wǎng)頁測試(分別輸入192.168.184.70、192.168.184.70:8080/192.168.184.70/lucien/index.jsp)
一、docker compose常用命令
| build | 重新構建服務 |
| ps | 列出容器 |
| up | 創(chuàng)建和啟動容器 |
| exec | 在容器里面執(zhí)行命令 |
| scale | 指定一個服務容器啟動數(shù)量 |
| top | 顯示容器進程 |
| logs | 查看容器輸出 |
| down | 刪除容器、網(wǎng)絡、數(shù)據(jù)卷和鏡像 |
| stop/start/restart | 停止/啟動/重啟服務 |
二、docker compose配置常用字段
| build docker context | 指定Dockerfile文件名構建鏡像上下文路徑 |
| image | 指定鏡像 |
| command | 執(zhí)行命令,覆蓋默認命令 |
| container_name | 指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale |
| environment | 添加環(huán)境變量 |
| networks | 加入網(wǎng)絡 |
| ports | 暴露容器端口,與-p相同,但不能低于60 |
| volumes | 掛載宿主機路徑或命令卷 |
| restart | 重啟策略,默認no,always,no-failure,unless-stoped |
| hostname | 容器主機名 |
三、docker compose 演示(tomcat+nginx)
1、dockerfile撰寫 nginx 鏡像
FROM centos:7.4.1708 ADD nginx-1.12.0.tar.gz /opt RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make \&& useradd -M -s /sbin/nologin nginx \&& cd /opt/nginx-1.12.0/ \&& ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module \&& make \&& make install \&& ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx \&& echo -e "events {\nuse epoll;\nworker_connections 1024;\n}\nhttp {\nupstream tomcat_server {\nserver 172.17.0.3:8080 weight=1;\n}\nserver_tokens on;\nserver {\nlisten 80;\nserver_name localhost;\nlocation ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)\$ {\nroot /usr/local/nginx/html/xxx;\nexpires 10d;\n}\nlocation / {\nroot html;\nindex index.html index.htmi index.php;\n}\nerror_page 500 502 503 504 /50x.html;\nlocation = /50x.html {\nroot html;\n}\nlocation ~ .*.jsp\$ {\nproxy_pass http://tomcat_server;\nproxy_set_header HOST \$host;\nproxy_set_header X-Real-IP \$remote_addr;\nproxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;\n}\n}\n}" > /usr/local/nginx/conf/nginx.conf ENV PATH /usr/local/nginx/sbin:$PATH WORKDIR /usr/local/nginx/ EXPOSE 80 CMD ["nginx","-g","daemon off;"]2、dockerfile撰寫 tomcat 鏡像
FROM centos:7.4.1708 ADD jdk-8u91-linux-x64.tar.gz /usr/local ADD apache-tomcat-9.0.16.tar.gz /usr/local RUN mv /usr/local/jdk1.8.0_91 /usr/local/java && mv /usr/local/apache-tomcat-9.0.16 /usr/local/tomcat ENV JAVA_HOME /usr/local/java ENV JAVA_BIN /usr/local/java/bin ENV JRE_HOME /usr/local/java/jre ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar ENV PATH $JAVA_BIN:/usr/local/java/jre/bin:$PATH RUN mkdir /usr/local/tomcat/webapps/lucien \&& echo -e "<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%>\n<html>\n<head>\n<title>JSP test1 page</title>\n</head>\n<body>\n<% out.println(\"123456\");%>\n</body>\n</html>" > /usr/local/tomcat/webapps/lucien/index.jsp \&& sed -i '71a <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">' /usr/local/tomcat/conf/server.xml \&& sed -i '72a <Context docBase="/usr/local/tomcat/webapps/lucien" path="" reloadable="true">' /usr/local/tomcat/conf/server.xml \&& sed -i '73a </Context>' /usr/local/tomcat/conf/server.xml \&& sed -i '74a </Host>' /usr/local/tomcat/conf/server.xml EXPOSE 8080 ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]3、撰寫docker compose.yml文件
version: '3' networks:lnmp:external: true services:tomcat:hostname: tomcatbuild:context: ./tomcatdockerfile: dockerfileports:- 8080:8080networks:lnmp:ipv4_address: 172.168.184.100nginx:hostname: nginxbuild:context: ./nginxdockerfile: dockerfileports:- 80:80networks:lnmp:ipv4_address: 172.168.184.504、開啟,并查看運行狀態(tài)
5、進行網(wǎng)頁測試(分別輸入192.168.184.70、192.168.184.70:8080/192.168.184.70/lucien/index.jsp)
總結
以上是生活随笔為你收集整理的简单的docker-compose编写介绍(包含 nginx+tomcat 实例演示)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华擎x99主板再次刷新内存频率极限,性能
- 下一篇: K8S——单master节点和基于单ma