中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dockers之構建容器Nginx+Tomcat+MySQL

發布時間:2020-06-18 22:00:29 來源:網絡 閱讀:657 作者:warrent 欄目:云計算

博文大綱:

  • 一、構建Nginx容器
  • 二、構建Tomcat容器
  • 三、構建MySQL容器

注意:一定要配置宿主機可以連接Internet,因為在構建容器的過程中,很多資源需要去互聯網找。

一、構建Nginx容器

Nginx是一款輕量級的web服務器,也是一個優秀的反向代理服務器。Nginx服務占用內存少,并發能力強,下面是構建Nginx容器的具體操作:

[root@localhost ~]# docker pull centos      #下載centos 7的基礎鏡像,該鏡像也將會被后面構建的Tomcat和MySQL容器所使用。
[root@localhost ~]# mkdir nginx       #創建工作目錄
[root@localhost ~]# cd nginx/
[root@localhost nginx]# vim Dockerfile          #編寫dockerfile文件,用來實現Nginx安裝過程
#寫入以下內容
FROM centos            #設置基礎鏡像
MAINTAINER the centos project     #維護該鏡像的用戶信息
RUN yum -y install wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel  #安裝相關依賴包
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方式啟動
ADD run.sh /run.sh         #上傳運行腳本
RUN chmod 775 /run.sh    #賦予腳本權限
CMD ["/run.sh"]      #啟動容器時執行腳本,編輯完成后,保存退出即可
[root@localhost nginx]# vim run.sh      #編輯運行腳本,寫入以下內容

#!/bin/bash
/usr/local/nginx/sbin/nginx
[root@localhost nginx]# ls           #確定當前目錄下有以下文件
Dockerfile  run.sh
[root@localhost nginx]# docker build -t nginx:ljz .       #生成鏡像,千萬不要忽略命令末尾的點“.”號,否則會報錯
                      .............................#省略部分內容
Successfully built cd6ac93f3680              #出現這行提示信息,則表示創建成功
[root@localhost nginx]# docker run -d -P nginx:ljz      #啟動該容器,“-d”表示持久化運行,“-P”表示將容器的端口映射到宿主機
895c19da98f3256acb20939dcc7abb4d26273287ddfc0810efc0940a55d04c10
[root@localhost nginx]# docker ps -a    #查看容器,其中32769、32768就是容器映射到宿主機的端口
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

訪問容器進行測試,Nginx是否運行成功!如下(訪問宿主機的32769端口,就相當于訪問了容器的80端口):
Dockers之構建容器Nginx+Tomcat+MySQL

二、構建Tomcat容器

Tomcat是一個免費開源的輕量級web服務器,在中小型企業和并發量不高的場合普遍使用,是開發和調試JSP程序的首選。下面使用Dockerfile文件的方式來創建帶有Tomcat服務的docker鏡像。

準備工作:點擊下載JDK源碼包,并放置Linux宿主機的Tomcat工作目錄。

[root@localhost ~]# mkdir tomcat                 #創建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     #基礎鏡像centos
MAINTAINER The centos project   ljz916551516@163.com   #維護該鏡像的用戶信息
ADD jdk1.8.0_91 /usr/local/jdk-8u91             #將本地的JDK文件上傳至容器
#以下是設置JDK環境變量
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          #添加運行腳本
RUN chmod 775 /run.sh        #賦予腳本執行權限
CMD ["/run.sh"]           #運行腳本,編寫完畢后,保存退出即可。
[root@localhost tomcat]# vim run.sh          #編寫執行腳本內容

#!/bin/bash
/usr/local/tomcat/bin/startup.sh
tailf /run
[root@localhost tomcat]# ls       #確保當前目錄下有以下文件
Dockerfile  jdk1.8.0_91  jdk-8u91-linux-x64.tar.gz  run.sh
[root@localhost tomcat]# docker build -t tomcat:ljz .        #生成鏡像,千萬不要忽略命令末尾的點“.”號,否則會報錯
                      .............................#省略部分內容
Successfully built  94c59c9239ec         #出現這行提示信息,則表示創建成功
[root@localhost tomcat]# docker run -d --name tomcat -p 8080:8080 tomcat:ljz
#運行剛剛創建的Tomcat容器,并指定容器的名字為Tomcat,映射到宿主機的8080端口。
5d8a5714166ef63208511bb1123c5568d0562b1b3734db4eec2aed733d8a733d
[root@localhost tomcat]# docker ps -a | grep tomcat        #查看Tomcat容器的狀態是否正常
5d8a5714166e        tomcat:ljz          "/run.sh"           20 seconds ago      Up 19 seconds       0.0.0.0:8080->8080/tcp                          tomcat

客戶端訪問Linux宿主機的8080端口,測試是否能夠訪問到Tomcat容器提供的web服務,如下:

Dockers之構建容器Nginx+Tomcat+MySQL

看到以上頁面,則表示Tomcat容器構建成功。

這里簡單說一下Tomcat和apache的區別:它們都是Aache開源組織開發的用于處理HTTP服務的項目。兩者都免費,也都可以作為獨立的web服務器運行。Apache是C語言實現的,主要解析靜態文本,并發性高,側重于HTTP服務,Tomcat是java開發的一個符合JavaEES的JSP服務器,屬于Apache的擴展,主要用于解析JSP/Servlet,側重于Servlet引擎。

三、構建MySQL容器

MySQL是當下最流行的關系型數據庫,所使用的SQL語言是用于訪問數據庫的最常用標準化語言,MySQL具有體積小、速度快、成本低的優勢,是中小型企業首選的數據庫。

開始構建MySQL容器:

[root@localhost ~]# docker pull docker.io/guyton/centos6      #下載centos 6作為基礎鏡像
[root@localhost ~]# mkdir mysql        #創建工作目錄
[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 .     #生成鏡像,千萬不要忽略命令末尾的點“.”號,否則會報錯
                      .............................#省略部分內容
    Successfully built   30414dc7bc02         #出現這行提示信息,則表示創建成功
[root@localhost ~]# docker run -d --name mysql -P mysql:ljz   #運行容器,并定義容器名稱為mysql
ea1a8aa2d1f18e0d06c4bdf47a6b743f3763247f13c6335b3fc7b785baf7332f
[root@localhost ~]# docker ps -a | grep mysql        #確認容器處于運行狀態
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
#對容器中的數據庫進行訪問測試,若無法使用mysql命令,請自行執行“yum -y install mysql”進行安裝
Welcome to the MariaDB monitor.  Commands end with ; or \g.
                       .............................#省略部分內容        

MySQL [(none)]>           #命令提示符發生變化,登錄到了容器中的數據庫
MySQL [(none)]> show databases;               #查看數據庫的數據
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

MySQL [(none)]> exit              #退出
Bye

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天祝| 衡山县| 宿迁市| 阳山县| 和静县| 九龙县| 昭觉县| 始兴县| 彰武县| 防城港市| 宁化县| 元阳县| 绥棱县| 东方市| 义马市| 湟中县| 四平市| 余姚市| 宣城市| 遂平县| 潢川县| 齐齐哈尔市| 中超| 连南| 大城县| 东海县| 耿马| 个旧市| 郸城县| 云霄县| 土默特右旗| 唐河县| 工布江达县| 哈巴河县| 小金县| 滁州市| 金山区| 年辖:市辖区| 永平县| 库伦旗| 聂拉木县|