博文大綱:
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出池州免費(fèi)做網(wǎng)站回饋大家。
- 一、構(gòu)建Nginx容器
- 二、構(gòu)建Tomcat容器
- 三、構(gòu)建MySQL容器
注意:一定要配置宿主機(jī)可以連接Internet,因?yàn)樵跇?gòu)建容器的過程中,很多資源需要去互聯(lián)網(wǎng)找。
Nginx是一款輕量級(jí)的web服務(wù)器,也是一個(gè)優(yōu)秀的反向代理服務(wù)器。Nginx服務(wù)占用內(nèi)存少,并發(fā)能力強(qiáng),下面是構(gòu)建Nginx容器的具體操作:
[root@localhost ~]# docker pull centos #下載centos 7的基礎(chǔ)鏡像,該鏡像也將會(huì)被后面構(gòu)建的Tomcat和MySQL容器所使用。
[root@localhost ~]# mkdir nginx #創(chuàng)建工作目錄
[root@localhost ~]# cd nginx/
[root@localhost nginx]# vim Dockerfile #編寫dockerfile文件,用來實(shí)現(xiàn)Nginx安裝過程
#寫入以下內(nèi)容
FROM centos #設(shè)置基礎(chǔ)鏡像
MAINTAINER the centos project #維護(hù)該鏡像的用戶信息
RUN yum -y install wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel #安裝相關(guān)依賴包
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz #下載Nginx源碼包
RUN tar zxf nginx-1.9.7.tar.gz #解壓下載的源碼包
WORKDIR nginx-1.9.7 #指定容器中的工作路徑
RUN ./configure --prefix=/usr/local/nginx && make && make install #配置及編譯安裝
#開啟容器的80/443端口
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf #修改配置文件,以非daemon方式啟動(dòng)
ADD run.sh /run.sh #上傳運(yùn)行腳本
RUN chmod 775 /run.sh #賦予腳本權(quán)限
CMD ["/run.sh"] #啟動(dòng)容器時(shí)執(zhí)行腳本,編輯完成后,保存退出即可
[root@localhost nginx]# vim run.sh #編輯運(yùn)行腳本,寫入以下內(nèi)容
#!/bin/bash
/usr/local/nginx/sbin/nginx
[root@localhost nginx]# ls #確定當(dāng)前目錄下有以下文件
Dockerfile run.sh
[root@localhost nginx]# docker build -t nginx:ljz . #生成鏡像,千萬不要忽略命令末尾的點(diǎn)“.”號(hào),否則會(huì)報(bào)錯(cuò)
.............................#省略部分內(nèi)容
Successfully built cd6ac93f3680 #出現(xiàn)這行提示信息,則表示創(chuàng)建成功
[root@localhost nginx]# docker run -d -P nginx:ljz #啟動(dòng)該容器,“-d”表示持久化運(yùn)行,“-P”表示將容器的端口映射到宿主機(jī)
895c19da98f3256acb20939dcc7abb4d26273287ddfc0810efc0940a55d04c10
[root@localhost nginx]# docker ps -a #查看容器,其中32769、32768就是容器映射到宿主機(jī)的端口
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
895c19da98f3 nginx:ljz "/run.sh" 6 seconds ago Up 5 seconds 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp nervous_brahmagupta
訪問容器進(jìn)行測(cè)試,Nginx是否運(yùn)行成功!如下(訪問宿主機(jī)的32769端口,就相當(dāng)于訪問了容器的80端口):
Tomcat是一個(gè)免費(fèi)開源的輕量級(jí)web服務(wù)器,在中小型企業(yè)和并發(fā)量不高的場(chǎng)合普遍使用,是開發(fā)和調(diào)試JSP程序的首選。下面使用Dockerfile文件的方式來創(chuàng)建帶有Tomcat服務(wù)的docker鏡像。
準(zhǔn)備工作:點(diǎn)擊下載JDK源碼包,并放置Linux宿主機(jī)的Tomcat工作目錄。
[root@localhost ~]# mkdir tomcat #創(chuàng)建Tomcat的工作目錄
[root@localhost ~]# cd tomcat/ #切換至Tomcat目錄
[root@localhost tomcat]# rz #我這里將本地的JDK源碼包上傳了上來(我這里使用的是xshell連接的)
[root@localhost tomcat]# ls #查看
jdk-8u91-linux-x64.tar.gz
[root@localhost tomcat]# tar zxf jdk-8u91-linux-x64.tar.gz #解包
[root@localhost tomcat]# vim Dockerfile #編寫dockerfile文件
FROM centos #基礎(chǔ)鏡像centos
MAINTAINER The centos project ljz916551516@163.com #維護(hù)該鏡像的用戶信息
ADD jdk1.8.0_91 /usr/local/jdk-8u91 #將本地的JDK文件上傳至容器
#以下是設(shè)置JDK環(huán)境變量
ENV JAVA_HOME /usr/local/jdk-8u91
ENV JAVA_BIN /usr/local/jdk-8u91/bin
ENV JRE_HOME /usr/local/jdk-8u91/jre
ENV PATH $PATH:/usr/local/jdk-8u91/bin:/usr/local/jdk-8u91/jre/bin
ENV CLASSPATH /usr/local/jdk-8u91/jre/bin:/usr/local/jdk-8u91/lib:/usr/local/jdk-8u91/jre/lib/charsets.jar
RUN yum -y install wget #安裝wget工具
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
#下載Tomcat源碼包
RUN tar zxf apache-tomcat-8.5.38.tar.gz #解壓Tomcat源碼包
RUN mv apache-tomcat-8.5.38 /usr/local/tomcat #移至安裝目錄
EXPOSE 8080 #開啟8080端口
ADD run.sh /run.sh #添加運(yùn)行腳本
RUN chmod 775 /run.sh #賦予腳本執(zhí)行權(quán)限
CMD ["/run.sh"] #運(yùn)行腳本,編寫完畢后,保存退出即可。
[root@localhost tomcat]# vim run.sh #編寫執(zhí)行腳本內(nèi)容
#!/bin/bash
/usr/local/tomcat/bin/startup.sh
tailf /run
[root@localhost tomcat]# ls #確保當(dāng)前目錄下有以下文件
Dockerfile jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz run.sh
[root@localhost tomcat]# docker build -t tomcat:ljz . #生成鏡像,千萬不要忽略命令末尾的點(diǎn)“.”號(hào),否則會(huì)報(bào)錯(cuò)
.............................#省略部分內(nèi)容
Successfully built 94c59c9239ec #出現(xiàn)這行提示信息,則表示創(chuàng)建成功
[root@localhost tomcat]# docker run -d --name tomcat -p 8080:8080 tomcat:ljz
#運(yùn)行剛剛創(chuàng)建的Tomcat容器,并指定容器的名字為Tomcat,映射到宿主機(jī)的8080端口。
5d8a5714166ef63208511bb1123c5568d0562b1b3734db4eec2aed733d8a733d
[root@localhost tomcat]# docker ps -a | grep tomcat #查看Tomcat容器的狀態(tài)是否正常
5d8a5714166e tomcat:ljz "/run.sh" 20 seconds ago Up 19 seconds 0.0.0.0:8080->8080/tcp tomcat
客戶端訪問Linux宿主機(jī)的8080端口,測(cè)試是否能夠訪問到Tomcat容器提供的web服務(wù),如下:
看到以上頁面,則表示Tomcat容器構(gòu)建成功。
這里簡(jiǎn)單說一下Tomcat和apache的區(qū)別:它們都是Aache開源組織開發(fā)的用于處理HTTP服務(wù)的項(xiàng)目。兩者都免費(fèi),也都可以作為獨(dú)立的web服務(wù)器運(yùn)行。Apache是C語言實(shí)現(xiàn)的,主要解析靜態(tài)文本,并發(fā)性高,側(cè)重于HTTP服務(wù),Tomcat是java開發(fā)的一個(gè)符合JavaEES的JSP服務(wù)器,屬于Apache的擴(kuò)展,主要用于解析JSP/Servlet,側(cè)重于Servlet引擎。
MySQL是當(dāng)下最流行的關(guān)系型數(shù)據(jù)庫,所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言,MySQL具有體積小、速度快、成本低的優(yōu)勢(shì),是中小型企業(yè)首選的數(shù)據(jù)庫。
開始構(gòu)建MySQL容器:
[root@localhost ~]# docker pull docker.io/guyton/centos6 #下載centos 6作為基礎(chǔ)鏡像
[root@localhost ~]# mkdir mysql #創(chuàng)建工作目錄
[root@localhost ~]# cd mysql/ #切入工作目錄
[root@localhost mysql]# vim Dockerfile #編輯dockerfile文件
FROM guyton/centos6
MAINTAINER the centos project-mysql
RUN yum -y install mysql mysql-server
RUN /etc/init.d/mysqld start && \
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"&&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456';"
EXPOSE 3306
CMD ["mysqld_safe"]
[root@localhost mysql]# docker build -t mysql:ljz . #生成鏡像,千萬不要忽略命令末尾的點(diǎn)“.”號(hào),否則會(huì)報(bào)錯(cuò)
.............................#省略部分內(nèi)容
Successfully built 30414dc7bc02 #出現(xiàn)這行提示信息,則表示創(chuàng)建成功
[root@localhost ~]# docker run -d --name mysql -P mysql:ljz #運(yùn)行容器,并定義容器名稱為mysql
ea1a8aa2d1f18e0d06c4bdf47a6b743f3763247f13c6335b3fc7b785baf7332f
[root@localhost ~]# docker ps -a | grep mysql #確認(rèn)容器處于運(yùn)行狀態(tài)
ea1a8aa2d1f1 mysql:ljz "mysqld_safe" 41 seconds ago Up 40 seconds 0.0.0.0:32770->3306/tcp mysql
[root@localhost ~]# mysql -h 192.168.1.1 -u root -P 32770 -p123456
#對(duì)容器中的數(shù)據(jù)庫進(jìn)行訪問測(cè)試,若無法使用mysql命令,請(qǐng)自行執(zhí)行“yum -y install mysql”進(jìn)行安裝
Welcome to the MariaDB monitor. Commands end with ; or \g.
.............................#省略部分內(nèi)容
MySQL [(none)]> #命令提示符發(fā)生變化,登錄到了容器中的數(shù)據(jù)庫
MySQL [(none)]> show databases; #查看數(shù)據(jù)庫的數(shù)據(jù)
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
MySQL [(none)]> exit #退出
Bye
———————— 本文至此結(jié)束,感謝閱讀 ————————
新聞標(biāo)題:Dockers之構(gòu)建容器Nginx+Tomcat+MySQL
標(biāo)題網(wǎng)址:http://m.rwnh.cn/article14/jipsde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、小程序開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站策劃、面包屑導(dǎo)航、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)