構建Docker容器實戰

博文結構
構建Nginx容器
構建Tomcat容器
構建Mysql容器

瞭解Docker容器可以通過安裝及簡單操作來了解。

一.構建Nginx容器

Nginx是一款輕量級的WEB服務器,也是一 款優秀 的反向代理服務器. Nginx 服務佔用內存少,併發能力強,深受國內外用戶的歡迎。下面使用Dockerfile文件的方式來創建帶有Nginx服務的Docker鏡像。

1.下載基礎鏡像
下載一個創建Nginx鏡像的基礎鏡像centos鏡像:

[root@localhost media]# systemctl start docker
[root@localhost media]# docker load < centos

2.建立工作目錄
創建工作目錄

[root@localhost /]# mkdir nginx
[root@localhost /]# cd nginx

3.創建並編寫Dockerfile文件

[root@localhost nginx]# vim Dockerfile

FROM centos  \\設置基礎鏡像
MAINTAINER the contos projec  \\維護該鏡像用戶信息
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel
make openssl-devel   \\安裝相關依賴包
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz  
RUN tar zxf nginx-1.9.7.tar.gz   \\下載並解壓源碼包
WORKDIR nginx-1.9.7  
RUN ./configure --prefix=/usr/local/nginx && make && make install  \\編譯安裝Nginx
EXPOSE 80
EXPOSE 443   \\開啓80和443端口
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
\\複製服務啓動腳本並設置權限
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]  \\啓動容器時執行腳本

4.編寫執行腳本內容

[root@localhost nginx]# vim run.sh

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

5.生成鏡像

[root@localhost nginx]# docker build -t nginx:xws . \後面有個點,千萬不要忘記

6.啓動容器進行測試

[root@localhost nginx]# docker run -d -P nginx:xws  \\-P爲映射隨機端口
4794d0f564c93f09827d33f70be21f3893733648a56e4d3985f82611efb2aa0b

可以看到端口映射爲32769

[root@localhost nginx]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                           NAMES
4794d0f564c9        nginx:xws           "/run.sh"           13 minutes ago      Up 13 minutes       0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp   optimistic_goldberg

驗證

構建Docker容器實戰

二.構建Tomcat容器

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

1.創建工作目錄

[root@localhost /]# mkdir tomcat
[root@localhost /]# cd tomcat/
[root@localhost tomcat]# cp /media/jdk-8u91-linux-x64.tar.gz .
[root@localhost tomcat]# ls
jdk-8u91-linux-x64.tar.gz

2.創建Dockerfile文件

[root@localhost tomcat]# vim Dockerfile
FROM centos    \\基礎鏡像
MAINTAINER the centos project \\維護該鏡像用戶信息
ADD jdk1.8.0_91 /usr/local/jdk-8u91  \\設置jdk環境變量
ENV JAVA_HOME /usr/local/jdk-8u91
ENV JAVA_BIN /usr/local/jdk-8u91/bin
ENV JAVA_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 install -y wget     \\安裝wget工具
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz
RUN tar zxf apache-tomcat-8.5.49.tar.gz
RUN mv apache-tomcat-8.5.49 /usr/local/tomcat
EXPOSE 8080 
ADD run.sh /run.sh    \\啓動容器時添加並執行腳本
RUN chmod 775 /run.sh
CMD ["/run.sh"]

3.編寫執行腳本內容

[root@localhost tomcat]# vim run.sh
#!/bin/bash
/usr/local/tomcat/bin/startup.sh
tailf /run

4.用Dockerfile生成鏡像

[root@localhost tomcat]# docker build -t tomcat:aaa .
\後面的點不能少

5.運行容器並驗證

[root@localhost tomcat]# docker run -d --name asd -p 80:8080 tomcat:aaa

構建Docker容器實戰

三.構建mysql容器

MySQL是當下最流行的關係型數據庫,所使用的SQL語言是用於訪問數據庫的最常用標準化語言,MySQL具有體積小、速度快.成本低的優勢,成爲中小型企業首選的數據庫。下面使用Dockerfile文件的方式來創建帶有MySQL服務的Docker鏡像。

1.下載基礎鏡像並創建工作目錄
下載鏡像命令用:docker pull docker.io

[root@localhost /]# cd /media/
[root@localhost media]# ls
centos  centos6  jdk-8u91-linux-x64.tar.gz
[root@localhost media]# docker load < centos6
5d574ede99e4: Loading layer   202 MB/202 MB
b077477046f8: Loading layer 35.54 MB/35.54 MB
b244861945e8: Loading layer 2.048 kB/2.048 kB
Loaded image: docker.io/guyton/centos6:latest
[root@localhost media]# mkdir /mysql
[root@localhost media]# cd /mysql/
[root@localhost mysql]# 

2.創建Dockerfile文件

[root@localhost mysql]# vi Dockerfile

FROM guyton/centos6   \\設置基礎鏡像
MAINTAINER the centos6   維護鏡像的用戶信息
RUN yum install -y mysql mysql-server
RUN /etc/init.d/mysqld start && \   \\開啓MySQL服務進行授權
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   \\開啓3306端口
CMD ["mysqld_safe"]     \\運行初始化腳本mysql_safe

3.用Dockerfile生成鏡像

[root@localhost mysql]# docker build -t mysql:bbb .
\後面的點不能少

4.運行容器並驗證

[root@localhost mysql]# docker run -d --name mysql -P mysql:bbb

5.驗證

[root@localhost mysql]# mysql -h 192.168.6.132 -u root -P 32271 -p123456

此處使用MysQL命令連接容器數據庫時需要在本地系統使用
yum install mysql安裝mariaDB客戶端。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章