在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁(yè) > 博客 > 實(shí)用干貨分享(4)- 分布式金融PaaS容器化部署實(shí)戰(zhàn)

            實(shí)用干貨分享(4)- 分布式金融PaaS容器化部署實(shí)戰(zhàn)

            發(fā)布人:中電金信人 時(shí)間:2022-06-05 來(lái)源:工程師 發(fā)布文章

             編輯

             


            一、學(xué)習(xí)鏈接


            http://www.itmuch.com/docker/00-docker-lession-index/


            二、安裝步驟


            sudo yum install -y yum-utils device-mapper-persistent-data lvm2

            sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

            sudo yum-config-manager --enable docker-ce-edge # 啟用edge倉(cāng)庫(kù)

            sudo yum-config-manager --enable docker-ce-test # 啟用test倉(cāng)庫(kù)

            sudo yum makecache fast

            sudo yum install docker-ce

            sudo systemctl start docker

            sudo docker run hello-world


            三、常用操作指令


            下載鏡像

            鏡像下載地址:hub.docker.com

            或者使用docker search filebeat (搜索鏡像)

            編輯


            容器重啟

            docker restart nginx (容器的name)


            打包及啟動(dòng)指令

            docker build -t dap/mq_server:v1

            docker run --name mq_server \

            --restart=always \

            -p 8899:8899 \

            -v /root/mq/mq/application.properties:/opt/mq/application.properties \

            -d dap/mq_server:v1 \


            查看容器日志

            docker logs -f nginx (容器的name)


            顯示所有的容器(包括未運(yùn)行的)

            docker ps -a


            進(jìn)入容器內(nèi)部的bash窗口

            docker exec -it nginx /bin/bash


            查看容器元數(shù)據(jù),可看到掛載信息

            docker inspect mysql (容器的name)


            生成和加載docker鏡像tar包

            docker save youimages > name

            docker load < yourimages


            鏡像重命名

            docker image tag [鏡像id] 新名稱


            查詢CentOS的bash路徑

            [root@deploy dap-skywalking]# docker run -it centos:7.7.1908 whereis bash

            bash: /usr/bin/bash

            編輯


            掛載本地時(shí)間

            /ect/localtime -- 掛載本地的時(shí)間到docker容器中解決日志打印的時(shí)間格式問(wèn)題


            四、常見問(wèn)題


            運(yùn)行docker容器

            iptables: No chain/target/match by that name

            編輯


            執(zhí)行一下 :systemctl restart docker

            編輯


            https://blog.csdn.net/u013948858/article/details/83115388


            安裝docker客戶端遇到的問(wèn)題

            編輯


            https://www.cnblogs.com/maodot/p/7654918.html


            redis 啟動(dòng)權(quán)限問(wèn)題

            更改redis 路徑下的權(quán)限,也可以使用第5個(gè)問(wèn)題的解決思路

            chown 1000:1000

            chmod 1777


            https://blog.csdn.net/luozhonghua2014/article/details/80369469


            文件創(chuàng)建權(quán)限問(wèn)題

            /opt/app/skywalking-apm-bin/logs/skywalking-oap-server.log

            編輯


            在啟動(dòng)指令中增加 :--privileged=true (不推薦)


            推薦方法:直接在Dockerfile中添加 RUN chmod -R 777 /opt/app/ 命令來(lái)修改該文件夾下的所有權(quán)限

            編輯


            ADD與COPY的區(qū)別

            對(duì)于需要在外部單獨(dú)修改的配置文件,推薦使用COPY指令,而不是ADD指令。


            ADD指令只針對(duì)于tar包文件,指令本身有解壓的功能。


            五、DockerFile


            mysql服務(wù)搭建

            docker run --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.20

            CREATE DATABASE IF NOT EXISTS config_server DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

            CREATE DATABASE IF NOT EXISTS mq_console_new DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

            使用docker命令登錄容器內(nèi)的mysql:


            docker exec -it mysql /bin/bash

            mysql -u root -p 123456

            Dockerfile:自定義MySQL容器,添加自定義配置:


            FROM mysql:5.7.20

            RUN echo "[mysqld]" >> /etc/mysql/mysql.cnf \

            && echo "lower_case_table_names=1" >> /etc/mysql/mysql.cnf \

            && echo "character_set_server=utf8" >> /etc/mysql/mysql.cnf \

            && echo "init_connect='SET NAMES utf8'" >> /etc/mysql/mysql.cnf \

            && echo "sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.cnf \

            && echo "[client]" >> /etc/mysql/mysql.cnf \

            && echo "default-character-set=utf8" >> /etc/mysql/mysql.cnf


            直接使用java命令啟動(dòng)

            FROM centos:7.7.1908

            MAINTAINER zhaikai

            WORKDIR /usr/local

            ADD jdk-8u251-linux-x64.tar.gz /usr/local

            ENV JAVA_HOME=/usr/local/jdk1.8.0_251

            ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

            ENV PATH=$JAVA_HOME/bin:$PATH

            ENV LANG C.UTF-8

            RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

            RUN echo 'Asia/Shanghai' >/etc/timezone

            WORKDIR /opt/config

            ADD dap-boot-starter-config-server-1.0-SNAPSHOT.jar /opt/config/app.jar

            #VOLUME application-config.yml -- 寫法有些問(wèn)題,還需要一些其他工作

            COPY application-config.yml /opt/config/application-config.yml

            #EXPOSE 8087

            ENTRYPOINT ["java","-jar","/opt/config/app.jar","--spring.config.location=/opt/config/application-config.yml"]


            使用啟動(dòng)腳本啟動(dòng)

            FROM centos:7.7.1908

            MAINTAINER zhaikai

            WORKDIR /usr/local

            ADD jdk-8u201-linux-x64.tar.gz /usr/local

            ENV JAVA_HOME=/usr/local/jdk1.8.0_201

            ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

            ENV PATH=$JAVA_HOME/bin:$PATH

            ENV LANG C.UTF-8

            RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

            RUN echo 'Asia/Shanghai' >/etc/timezone

            WORKDIR /opt/app

            ADD batch-web.tar.gz /opt/app/

            RUN chmod -R 777 /opt/app/

            ENTRYPOINT ["/usr/bin/bash","-c","/opt/app/batch-web/bin/start.sh"]


            下載中文語(yǔ)言包

            日志模塊需要額外下載中文語(yǔ)言包,用以解決配置文件中的中文無(wú)法在頁(yè)面正常顯示的問(wèn)題。


            FROM centos:7.7.1908

            MAINTAINER zhaikai

            WORKDIR /usr/local

            ADD jdk-8u201-linux-x64.tar.gz /usr/local

            ENV JAVA_HOME=/usr/local/jdk1.8.0_201

            ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

            ENV PATH=$JAVA_HOME/bin:$PATH

            RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

            RUN echo 'Asia/Shanghai' >/etc/timezone

            RUN yum install kde-l10n-Chinese -y

            RUN yum install glibc-common -y

            RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

            #RUN export.UTF-8

            #RUN echo "export.UTF-8" >> /etc/locale.conf

            #ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8

            #RUN yum -y install kde-l10n-Chinese --nogpgcheck

            #RUN yum reinstall -y glibc-common --nogpgcheck

            #RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

            #RUN yum -y groupinstall chinese-support

            ENV.UTF-8

            WORKDIR /opt/app

            ADD logger-deploy.tar.gz /opt/app/

            RUN chmod -R 777 /opt/app/

            ENTRYPOINT ["/usr/bin/bash","-c","/opt/app/logger-deploy/startup.sh"]


            Nginx前端代理

            FROM nginx:latest

            MAINTAINER zhoulei

            ENV LANG C.UTF-8

            RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

            RUN echo 'Asia/Shanghai' >/etc/timezone

            ADD config-web.tar.gz /usr/share/nginx/html

            打包以及啟動(dòng)指令:


            docker build -t dap/console:v1 .

            docker run -itd \

            --privileged=true \

            -p 8888:80 \

            --restart=always \

            --name nginx \

            -v /home/docker/dap-web/nginx.conf:/etc/nginx/nginx.conf \

            -v /var/log/nginx/logs:/var/log/nginx \

            -d dap/console:v1 \


            使用域名進(jìn)行動(dòng)態(tài)加載

            DNS配置:

            containers 同一級(jí)下進(jìn)行配置:

            hostAliases:

            - hostnames: ['域名']

            ip: IP地址

            編輯


            nginx配置文件

            127.0.0.1 配置域名

            編輯


            六、Skywalking


            SkyWalking服務(wù)

            需要配置端口映射:8090(前端)、11800(RPC)、11800(HTTP)


            注意一下一定要執(zhí)行SkyWalking的初始化腳本(oapServiceInit.sh),里面包含了創(chuàng)建ES索引的各種操作。


            三個(gè)Demo

            有幾個(gè)關(guān)鍵步驟:

            1、將agent包放入demo路徑下

            2、修改啟動(dòng)腳本,將IP和端口設(shè)為負(fù)載均衡的IP端口

            編輯


            3、修改jar包中zk的地址

            編輯


            4、eCas-order啟動(dòng)后,需要將配置文件中的8107端口進(jìn)行負(fù)載均衡的配置

            5、eCas-order啟動(dòng)后,需要該應(yīng)用將日志路徑掛載到filebeat指定的節(jié)點(diǎn)機(jī)器中的指定路徑中,以便日志系統(tǒng)進(jìn)行采集


            七、容器化總結(jié)

            在進(jìn)行容器化部署時(shí),可能會(huì)出現(xiàn)如下問(wèn)題:

            1. 中文語(yǔ)言包

            由于容器中沒有安裝中文包,所以日志模塊部署上去后,原本是中文的某些顯示項(xiàng),會(huì)變成亂碼。解決方法見【DockerFile】章節(jié)中的【下載中文語(yǔ)言包】


            2. 盡量保證一個(gè)容器運(yùn)行一個(gè)應(yīng)用

            容器是docker運(yùn)行的一個(gè)最小單元,往往推薦只運(yùn)行一個(gè)應(yīng)用。如果運(yùn)行多個(gè)應(yīng)用,一旦遇到問(wèn)題,很難通過(guò)容器平臺(tái)對(duì)錯(cuò)誤進(jìn)行定位。因?yàn)槿罩臼嵌鄠€(gè)應(yīng)用雜亂無(wú)章的顯示;多個(gè)應(yīng)用之間的啟動(dòng)、以及調(diào)用可能也會(huì)出現(xiàn)相應(yīng)的問(wèn)題;容器的重新打包也會(huì)相應(yīng)的變得復(fù)雜起來(lái)。所以最好的部署方式是一個(gè)容器運(yùn)行一個(gè)應(yīng)用。


            3. nohup盡量不要使用

            因?yàn)閐ocker logs獲取的是標(biāo)準(zhǔn)控制臺(tái)的日志打印。nohup會(huì)影響日志的查看,影響我們對(duì)容器的啟動(dòng)情況進(jìn)行排查。


            4. VOLUME盡量不要使用

            DockerFile中如果需要添加配置文件,盡量不要使用VOLUME 進(jìn)行掛載。使用COPY命令即可,如果沒有搞清楚文件夾和文件之間的關(guān)系,抑或沒有提前處理好權(quán)限問(wèn)題的話,使用VOLUME會(huì)出現(xiàn)很多問(wèn)題。


            5. 容器不斷重啟

            如果容器不斷重啟,或者無(wú)法直接啟動(dòng)。而控制臺(tái)的日志并沒有給出一個(gè)明確的打印。會(huì)給異常排錯(cuò)帶來(lái)很大的困難。解決方案就是將容器中的應(yīng)用日志掛載到宿主機(jī)的指定路徑下,當(dāng)容器發(fā)生啟動(dòng)異?;蛘卟粩嘀貑⒌膯?wèn)題時(shí),可以在宿主機(jī)中進(jìn)行日志查看。


            *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



            關(guān)鍵詞: 干貨

            技術(shù)專區(qū)

            關(guān)閉