首页 > 其他分享 >第10周

第10周

时间:2023-04-20 18:13:59浏览次数:28  
标签:opt 10 tomcat lnmp usr docker local

1、使用dockerfile制作nginx+php-fpm镜像,实现lnmp。
2、使用dockerfile制作tomcat镜像,并实现对jsp测试页访问
3、安装配置harbor服务,并将打包好的镜像提交到harbor仓库

---------------------------------------------------------------------------------------------------------

1 使用dockerfile制作nginx+php-fpm镜像,实现lnmp。

# mkdir -p /opt/docker/lnmp
# cd /opt/docker/lnmp

#Dockerfile
# cat /opt/docker/lnmp/Dockerfile 
FROM centos:7.9.2009
LABEL maintainer "Marko.Ou <[email protected]>"
RUN \
    #更换yum源; \
     cd /etc/yum.repos.d; \
     mkdir bakdir; \
     mv *.repo bakdir
#添加repo配置文件
ADD CentOS7.repo /etc/yum.repos.d
RUN \
    #yum安装nginx/php-fpm/mysql; \
     yum -y install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm; \
     yum -y install nginx php82-php-fpm php82-php-mysqlnd acl; \
    #修改php配置文件; \
     sed -ri '/^user/s#(.*= ).*#\1nginx#' /etc/opt/remi/php82/php-fpm.d/www.conf; \
     sed -ri '/^group/s#(.*= ).*#\1nginx#' /etc/opt/remi/php82/php-fpm.d/www.conf; \
    #准备访问资源; \
     mkdir -p /data/www/wordpress; \
     echo web_app > /data/www/wordpress/index.php; \
     setfacl -m u:nginx:rwx /data/www
#添加nginx配置文件
ADD testou.com.conf /etc/nginx/conf.d
#添加启动脚本
ADD run_lnmp.sh /usr/local/bin
#启动脚本
CMD ["/usr/local/bin/run_lnmp.sh"]

#yum源配置文件
# cat /opt/docker/lnmp/CentOS7.repo 
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=0
[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=0
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/
gpgcheck=0

#nginx配置文件
# cat /opt/docker/lnmp/testou.com.conf
server {
  server_name www.testou.com;
  location / {
    root /data/www/wordpress;
    index index.php;
  }
  location ~ \.php$ {
    root /data/www/wordpress;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

#启动脚本
# cat /opt/docker/lnmp/run_lnmp.sh
#!/bin/bash
nginx
/opt/remi/php82/root/usr/sbin/php-fpm &
tail -f /etc/hosts
#启动脚本赋执行权限
# chmod +x /opt/docker/lnmp/run_lnmp.sh

#构建镜像脚本
# cat /opt/docker/lnmp/build-command.sh
#!/bin/bash
docker build -t lnmp:1.1-centos-7.9.2009 .

#运行构建镜像脚本
# bash build-command.sh

#运行容器
# docker run -d -it -p 80:80 -p 9000:9000 lnmp:1.1-centos-7.9.2009

#客户机测试
# tail -n1 /etc/hosts
10.0.0.7 www.testou.com
# curl http://www.testou.com
web_app

2 使用dockerfile制作tomcat镜像,并实现对jsp测试页访问

2.1 构建 jdk 镜像

#创建制作镜像目录
# mkdir -p /opt/docker/jdk/jdk-8u241
# cd /opt/docker/jdk/jdk-8u241

#创建dockerfile
# vi Dockerfile
FROM centos:7.9.2009
LABEL maintainer "Marko.Ou <[email protected]>"
ADD jdk-8u241-linux-x64.tar.gz /usr/local
RUN ln -s /usr/local/jdk1.8.0_241 /usr/local/jdk; \
    chown -R root.root /usr/local/jdk/
ADD profile /etc/profile
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin 

#目录结构
# tree /opt/docker/jdk/jdk-8u241
/opt/docker/jdk/jdk-8u241
├── build-command.sh
├── Dockerfile
├── jdk-8u241-linux-x64.tar.gz
└── profile

0 directories, 4 files

#构建镜像
# bash build-command.sh

2.2 构建 tomcat 业务镜像

#创建制作镜像目录
# mkdir -p /opt/docker/tomcat/tomcat-8.5.85
# cd /opt/docker/tomcat/tomcat-8.5.85

#创建dockerfile
# vi Dockerfile
FROM centos-jdk:8u241
LABEL maintainer "Marko.Ou <[email protected]>"
ADD apache-tomcat-8.5.85.tar.gz /usr/local
RUN ln -s /usr/local/apache-tomcat-8.5.85/ /usr/local/tomcat; \
    rm -f /usr/local/apache-tomcat-8.5.85.tar.gz
ADD server.xml /usr/local/tomcat/conf
RUN useradd java; \
    chown -R java.java /usr/local/tomcat/            #启动程序用户权限
ADD linux39.tar.gz /data/tomcat/webapps
ADD run_tomcat.sh /usr/local/tomcat/bin              #启动脚本执行权限
EXPOSE 8080 8005 8009 
CMD ["/usr/local/tomcat/bin/run_tomcat.sh"]

#启动脚本
# cat run_tomcat.sh
#!/bin/bash
su - java -c "/usr/local/tomcat/bin/catalina.sh start"
tail -f /etc/hosts

#jsp测试页
# cat /opt/docker/tomcat-8.5.85/linux39/app1/showhost.jsp 
<%@page import="java.util.Enumeration"%>
<br />
host: <%try{out.println(""+java.net.InetAddress.getLocalHost().getHostName());}catch(Exception e){}%>
<br />
remoteAddr: <%=request.getRemoteAddr()%>
<br />
remoteHost: <%=request.getRemoteHost()%>
<br />
sessionId: <%=request.getSession().getId()%>
<br />
serverName: <%=request.getServerName()%>
<br />
scheme: <%=request.getScheme()%>
<br />
<%request.getSession().setAttribute("t1","t2");%>
<%
    Enumeration en = request.getHeaderNames();
    while(en.hasMoreElements()){
    String hd = en.nextElement().toString();
        out.println(hd+" : "+request.getHeader(hd));
        out.println("<br />");
    }
%>

#目录结构
# tree /opt/docker/tomcat/tomcat-8.5.85
/opt/docker/tomcat/tomcat-8.5.85
├── apache-tomcat-8.5.85.tar.gz
├── build-command.sh
├── Dockerfile
├── linux39
│   ├── app1
│   │   ├── index.html
│   │   └── showhost.jsp
│   └── app2
│       ├── index.html
│       └── showhost.jsp
├── linux39.tar.gz
├── run_tomcat.sh
└── server.xml

3 directories, 10 files

#构建镜像
# bash build-command.sh

#测试运行容器
# docker run -d -it -p 8080:8080 tomcat-linux39:app1

#客户机测试
# curl http://10.0.0.7:8080/linux39/app1/
 volume page for app1
# curl http://10.0.0.7:8080/linux39/app1/showhost.jsp

<br />
host: 0d5b84c8646d

<br />
remoteAddr: 10.0.0.27
<br />
remoteHost: 10.0.0.27
<br />
sessionId: E21E2030F42FD18480D1AD4CA6687576
<br />
serverName: 10.0.0.7
<br />
scheme: http
<br />

user-agent : curl/7.29.0
<br />
host : 10.0.0.7:8080
<br />
accept : */*
<br />

3 安装配置harbor服务,并将打包好的镜像提交到harbor仓库

#安装1.7.6版本harbor
#先安装docker-ce、docker-ce-cli、docker-compose
# yum -y install docker-compose
#安装harbor-1.7.6
# cd /usr/local/src
# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.6.tgz
# tar xf harbor-offline-installer-v1.7.6.tgz -C /usr/local
# cd /usr/local/harbor
# vi harbor.cfg          #1.10版本修改harbor.yml,只改hostname、harbor_admin_password,注释ssl相关
 hostname = 10.0.0.7               #harbor服务端地址
 harbor_admin_password = 123456        #密码,用户名为admin
# ./install.sh

#访问web界面:http://10.0.0.7,登录,用户名amin,密码123456
#新建项目
 项目->新建项目->项目名称:oxz
               访问级别:勾选公开

#客户端修改docker service,增加选项--insecure-registry
# vi /usr/lib/systemd/system/docker.service
 ...
 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.7
# systemctl daemon-reload
# systemctl restart docker

#客户端修改镜像tag
# docker tag lnmp:1.1-centos-7.9.2009 10.0.0.7/oxz/lnmp:1.1-centos-7.9.2009
# docker tag tomcat-linux39:app1 10.0.0.7/oxz/tomcat-linux39:app1

#客户端上传镜像
# docker push 10.0.0.7/oxz/lnmp:1.1-centos-7.9.2009
# docker push 10.0.0.7/oxz/tomcat-linux39:app1

#无法上传时,先登录再上传
# docker login --username=admin --password=123456 10.0.0.7

标签:opt,10,tomcat,lnmp,usr,docker,local
From: https://www.cnblogs.com/ddjapfpapd/p/17267632.html

相关文章

  • 10 文件与异常
    从文件中读取数据一次性读取#file_reader.pywithopen('pi_digits.txt')asfile_object:contents=file_object.read()print(contents.rstrip())#因为read()到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行#要删除多出来的空行,可在pr......
  • Oracle“ORA-38104: 无法更新ON子句中引用的列”解决方式
    参考:MERGEINTOQLIK_CONFIG_MAPPING_REPORTUSINGdualON(CONFIG_ID=2ANDREPORT_ID=6)WHENMATCHEDTHENUPDATESET"CONFIG_ID"=2,"REPORT_ID"=6WHENNOTMATCHEDTHENINSERT("CONFIG_ID","REPORT_ID")VALUES(2,6);......
  • LeetCode Top100: 买卖股票的最佳时机 (python)
    LeetCodeTop100: 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这......
  • Integer Inquiry hdoj 1047
    IntegerInquiryTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):15216    AcceptedSubmission(s):3909ProblemDescriptionOneofthefirstusersofBIT'snewsupercomputerwasChipDill......
  • LeetCode Top100:回文链表 (python)
    LeetCodeTop100:回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围[1,105] 内0<=Node.val<=9 ......
  • AtCoder Regular Contest 109 F 1D Kingdom Builder
    洛谷传送门AtCoder传送门考虑判断一个终止态是否可达。如果只有一个棋子连续段那一定可达;否则就存在\(\ge2\)个连续段。此时把放棋子看成删除,那么限制就是如果删除一个孤立的棋子(两边没有棋子)且还有别的格子有棋子,这个棋子的颜色异于其他连续段的两边棋子的颜色。设第一......
  • 10-HTML5详解(二)
    title:10-HTML5详解(二)publish:true本文主要内容拖拽历史地理位置全屏拖拽如上图所示,我们可以拖拽博客园网站里的图片和超链接。在HTML5的规范中,我们可以通过为元素增加draggable="true"来设置此元素是否可以进行拖拽操作,其中图片、链接默认是开启拖拽的......
  • LeetCode Top100: 相交链表(Python)
    LeetCodeTop100:相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原......
  • LeetCode Top100: 环形链表(python)
     给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos 不作为参数进行传递 。仅仅是为......
  • CentOS 7下MariaDB 5.5升级到MariaDB 10.2
    转载自:https://cloud.tencent.com/developer/article/2075410==================== 一次CentOS7下升级MariaDB过程,在此记录下。原因:新的项目需要新的数据库版本支持。升级主要步骤:备份原数据库---》卸载mariadb---》添加mariadb国内yum源---》安装mariadb---》初始化......