博文結構
構建Nginx容器
構建Tomcat容器
構建Mysql容器mysql
瞭解Docker容器能夠經過安裝及簡單操做來了解。linux
Nginx是一款輕量級的WEB服務器,也是一 款優秀 的反向代理服務器. Nginx 服務佔用內存少,併發能力強,深受國內外用戶的歡迎。下面使用Dockerfile文件的方式來建立帶有Nginx服務的Docker鏡像。nginx
1.下載基礎鏡像
下載一個建立Nginx鏡像的基礎鏡像centos鏡像:sql
[root@localhost media]# systemctl start docker [root@localhost media]# docker load < centos
2.創建工做目錄
建立工做目錄docker
[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.編寫執行腳本內容apache
[root@localhost nginx]# vim run.sh #!/bin/bash /usr/local/nginx/sbin/nginx
5.生成鏡像vim
[root@localhost nginx]# docker build -t nginx:xws . \後面有個點,千萬不要忘記
centos
6.啓動容器進行測試tomcat
[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
驗證
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
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客戶端。