日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...

發(fā)布時(shí)間:2023/12/10 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

tomcat

上一節(jié)講到了dockerfile的基礎(chǔ),這一次咱們來(lái)作一個(gè)小的練習(xí)

首先要了解tomcat安裝的整個(gè)過(guò)程

首先搭建 jdk環(huán)境:

下載jdk包,解壓以后添加環(huán)境變量

而后搭建tomcat:

下載tomcat包,解壓,修改配置文件到一個(gè)工做目錄

而后給工做目錄加入一些東西,訪問(wèn)。java

From centos

add ./jdk-8u191-linux-x64.tar.gz /usr/local

add ./apache-tomcat-8.5.35.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk

ENV CLASSPATH $JAVA_HOME/lib/

ENV PATH $PATH:$JAVA_HOME/bin

RUN mkdir -p /var/www/www.fz.com

VOLUME /var/www/www.fz.com

RUN cd /usr/local/ && mv apache-tomcat-8.5.35 tomcat && mv jdk1.8.0_191 jdk

copy ./server.xml /usr/local/tomcat/conf/

copy ./mysql-connector-java-5.1.7-bin.jar /usr/local/tomcat/lib/

workdir /usr/local/tomcat

CMD bash bin/startup.sh && tail -f logs/catalina.out

這是整個(gè)dockerfile的文件。我來(lái)一次解釋一下

From centos:

這個(gè)沒(méi)什么好說(shuō)的就是一個(gè)基礎(chǔ)的centos的源鏡像

add:

兩個(gè)源碼包 一個(gè)是jdk的一個(gè)是tomcat的包

ENV:這里會(huì)設(shè)置環(huán)境變量,就是三個(gè)jdk的環(huán)境變量

RUN:執(zhí)行命令,建立一個(gè)tomcat的工做目錄,

VOLUME:和上面一塊兒,建立目錄以后把他映射到宿主機(jī),以即可以在外部把具體的頁(yè)面代碼放入。

RUN: 運(yùn)行命令把tomcat放到制定目錄并解壓

copy:第一個(gè)是把tomcat的配置文件的副本拷貝進(jìn)去,第二個(gè)是拷貝jdbc的包,以便之后鏈接數(shù)據(jù)庫(kù)時(shí)用。

workdir:后面的命令都是在/usr/local/tomcat下運(yùn)行

最后一個(gè)CMD很關(guān)鍵。

前面講過(guò),docker的鏡像運(yùn)行以后在執(zhí)行完命令就會(huì)自動(dòng)關(guān)閉,必需要給他一個(gè)可以掛在后臺(tái)運(yùn)行的命令,好比說(shuō)你在run后面會(huì)加上 /bin/bash等等讓他保持活躍的狀態(tài)。否則它就會(huì)自動(dòng)關(guān)閉。

這里若是只有打開(kāi)tomcat而沒(méi)有后面的加載日志,那么就會(huì)在打開(kāi)以后容器立刻又關(guān)閉了。因此docker ps就看不見(jiàn) 須要用 ps -a看全部的容器,會(huì)發(fā)現(xiàn)容器是關(guān)閉的。 就須要用刷新日志的方式讓tomcat在后臺(tái)與進(jìn)行。保持容器的開(kāi)啟狀態(tài)。

前面的須要的文件放在和dockerfile一個(gè)目錄下ok了。

而后編譯運(yùn)行

而后運(yùn)行

中間一部分省略

就能夠看見(jiàn)相似與平時(shí)的開(kāi)啟tomcat的日志

若是不想要在前臺(tái)看日志,能夠-d掛入后臺(tái)。如上圖所示mysql

mysql源碼安裝

mysql源碼安裝的大體過(guò)程

1.下載源碼包,下載一些依賴包例如gcc等

2.編譯安裝

3.建立用戶和組并賦予權(quán)限,而后數(shù)據(jù)庫(kù)初始化

4.設(shè)置數(shù)據(jù)庫(kù)root密碼linux

from centos

ADD ./mysql-5.6.35.tar.gz /usr/local/

RUN yum install gcc gcc-c++ ncurses-devel perl cmake make autoconf -y

RUN cd /usr/local/mysql-5.6.35 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

&& make && make install

RUN groupadd mysql && useradd -r -g mysql mysql && \

chown -R mysql:mysql /usr/local/mysql

ENV PATH /usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

workdir /usr/local/mysql

RUN scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid

RUN support-files/mysql.server start && mysqladmin -u root password 'redhat'

COPY ./test.sql /root/

RUN support-files/mysql.server start && mysql -uroot -predhat < /root/test.sql

CMD mysqld --user=mysql

這是個(gè)人dockerfile文件

依次解釋:

from:鏡像源

add:把源碼包c(diǎn)opy進(jìn)去并解壓

run: 第一個(gè)是下載一些依賴包,第二個(gè)是編譯安裝。第三個(gè)是用戶和權(quán)限。

env:環(huán)境變量

workdir :工做目錄設(shè)在mysql目錄下

run:數(shù)據(jù)庫(kù)初始化,

第二個(gè)是開(kāi)啟服務(wù)并修改root密碼

這里我踩了一個(gè)坑,修改密碼是要在開(kāi)啟服務(wù)的狀態(tài)下的,一開(kāi)始我沒(méi)有開(kāi)服務(wù),會(huì)出錯(cuò)。第二次我知道了要開(kāi)服務(wù),而后我是先在前面開(kāi)服務(wù),在后面在加一個(gè)run修改密碼,也會(huì)出錯(cuò),為何呢?

由于dockerfile每一行命令都是把鏡像生成一個(gè)容器,而后在容器內(nèi)執(zhí)行命令,子啊構(gòu)建成新的鏡像,這樣一來(lái),上一個(gè)鏡像是開(kāi)啟服務(wù),像開(kāi)啟服務(wù)把他單獨(dú)列在一行是沒(méi)有效果的,由于生成容器開(kāi)啟服務(wù)再生成鏡像還會(huì)同樣的鏡像,下一個(gè)執(zhí)行修改root密碼命令時(shí)候已是一個(gè)新的鏡像了因此服務(wù)是沒(méi)打開(kāi)的。

copy:而后就是拷貝我本身寫(xiě)的一個(gè)mysql的腳本進(jìn)入docker

run:這個(gè)是開(kāi)啟服務(wù)而且執(zhí)行腳本,然數(shù)據(jù)庫(kù)生成表插入數(shù)據(jù)

cmd:這個(gè)是前臺(tái)開(kāi)啟數(shù)據(jù)庫(kù)服務(wù)。

像前面一個(gè)編譯并開(kāi)啟就ok了

這里數(shù)據(jù)庫(kù)的編譯是最基礎(chǔ)的,沒(méi)有不少參數(shù),有需求本身加,而后這里的編譯須要的時(shí)間可能會(huì)有點(diǎn)久。c++

總結(jié)

以上是生活随笔為你收集整理的dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。