1. 程式人生 > >構建Docker鏡像實戰

構建Docker鏡像實戰

amp con onf centos6 too 位置 啟動 ssp 文件的

簡介

Nginx是一款輕量級的Web服務器,Tomcat是一款免費開源的輕量級web服務器,在中小型企業和並發訪問量不高的場合使用,是開發和調試JSP程序的首選。MSQL是當下最流行的關系型數據庫,以上這些都可以使用Dockerfile文件的方式來創建其Docker鏡像。

構建nginx鏡像

下載基礎鏡像

# docker pull centos

建立工作目錄

# mkdir /nginx
# cd /nginx/

創建並編寫Dockerfile文件

# vim Dockerfile  //一定是在/nginx下編寫

 # 設置基礎鏡像
FROM centos   
 # 維護用戶信息
MAINTAINER this is nginx image <chen>
 # 安裝相關依賴包
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel
 # 下載並解壓nginx源碼包
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz
RUN tar zxvf nginx-1.9.7.tar.gz
 # 編譯安裝nginx
WORKDIR nginx-1.9.7  
RUN ./configure --prefix=/usr/local/nginx && make && make install
 # 開啟80和443端口
EXPOSE 80
EXPOSE 443
 # 修改nginx配置文件,以非daemon方式啟動
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
 # 復制服務啟動腳本並設置權限
WORKDIR /nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
 # 啟動容器時執行腳本
CMD ["/run.sh"]

技術分享圖片

編寫執行腳本內容

# vim run.sh

#!/bin/bash
/usr/local/nginx/sbin/nginx

技術分享圖片

生成鏡像

# docker build -t nginx:new .

啟動容器進行測試

# docker run -d -P nginx:new
# docker ps -a
# http://192.168.177.147:32769/

技術分享圖片
技術分享圖片

構建tomcat鏡像

解壓jdk,創建工作目錄

# mkdir /tomcat
# tar zxvf jdk-8u144-linux-x64.tar.gz -C /tomcat/
# tar zxvf apache-tomcat-8.5.23.tar.gz -C /tomcat/
# cd /tomcat

創建Dockerfile文件

# vim Dockerfile  //一定要在/tomcat下
 # 基於基礎鏡像
FROM centos
 # 維護用戶信息
MAINTAINER this is tomcat image <chen>
 # 安裝jdk環境,設置其環境變量
ADD jdk1.8.0_144 /usr/local/java
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
 # 將tomcat移到相應位置
ADD apache-tomcat-8.5.23 /usr/local/tomcat8
 # 開啟8080端口
EXPOSE 8080

技術分享圖片

生成鏡像

# docker build -t tomcat:centos .

運行容器並驗證

映射本地80端口到容器的8080端口

# docker run --name web -p 80:8080 -it  tomcat:centos /bin/bash

技術分享圖片
技術分享圖片
進入運行著的容器,啟動tomcat

# cd /usr/local/tomcat8/bin
# ./startup.sh 
# http://192.168.177.147:80/

技術分享圖片
技術分享圖片

構建mysql鏡像

創建工作目錄

# mkdir /mysql
# cd /mysql

創建Dockerfile文件

# vim Dockerfile
 # 基於基礎鏡像
FROM guyton/centos6
 # 維護用戶信息
MAINTAINER this is msyql images <chen>
 # 安裝mysql數據庫軟件包
RUN yum -y install mysql mysql-server
 # 開啟mysql服務,並進行授權
RUN /etc/init.d/mysqld start &&mysql -e "grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘abc123‘;" &&mysql -e "grant all privileges on *.* to ‘root‘@‘localhost‘ identified by ‘abc123‘;"
 # 開啟3306端口
EXPOSE 3306
 # 運行初始化腳本mysqld_safe
CMD ["mysqld_safe"]

技術分享圖片

生成鏡像

# docker build -t centos:mysql .

運行容器並驗證

使用新鏡像運行容器,隨機映射本地的端口到容器的3306端口

# docker run --name=mysql_server -d -P centos:mysql

技術分享圖片
查看本地映射的端口號

# docker ps -a
# mysql -h 192.168.177.147 -u root -P 32768 -pabc123

技術分享圖片

構建Docker鏡像實戰