構建Docker鏡像實戰
阿新 • • 發佈:2018-08-15
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鏡像實戰