Persekitaran semasa yang digunakan ialah:
centos 7.5
docker-ce 18.06.1-ce
1. Mula-mula gunakan imej asas centos7.5.1804 untuk memasang beberapa persekitaran yang diperlukan untuk operasi
Buat direktori fail yang sepadan dalam direktori /app
[root@node2 /app/]# mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv [root@node2 /app]# cd dockerfile/system/centos/ [root@node2 /app/dockerfile/system/centos]# mkdir centos-7.5-base [root@node2 /app/dockerfile/system/centos]# cd centos-7.5-base
Buat fail docker
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim dockerfile #nginx base image from centos:7.5.1804 label maintaier "mr.luo <mr.luo@dklwj.com>" run yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
Buat skrip binaan docker langsung dan kemudian laksanakan skrip terus
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim build-command.sh #!/bin/bash docker build -t 172.20.7.50/baseimages/centos-base:7.5.1804 .
Laksanakan skrip untuk mencipta imej baharu
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#bash build-command.sh sending build context to docker daemon 3.072kb step 1/3 : from centos:7.5.1804 ---> 76d6bc25b8a5 step 2/3 : label maintaier 'mr.luo@dklwj.com' ---> using cache ---> 05ccd970d71d step 3/3 : run yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop ---> using cache ---> 73d683a54877 successfully built 73d683a54877 successfully tagged 172.20.7.50/baseimages/centos-base:7.5.1804
2. Gunakan imej persekitaran asas yang disediakan untuk membuat imej jdk
Keluar dari centos-7.5-base dan buat direktori jdk1.8 dalam direktori semasa.
[root@node2 /app/dockerfile/system/centos/centos-7.5-base]# cd .. [root@node2 /app/dockerfile/system/centos]# mkdir jdk1.8 [root@node2 /app/dockerfile/system/centos]# cd jdk1.8/
Buat fail docker
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim dockerfile from 172.20.7.50/baseimages/centos-base:7.5.1804 label maintainer "mr.luo <mr.luo@dklwj.com>" add jdk-8u162-linux-x64.tar.gz /usr/local/src/ run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk add profile /etc/profile env java_home /usr/local/jdk env jre_home $java_home/jre env classpath $java_home/lib/:$jre_home/lib/ env path $path:$java_home/bin run rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone
Muat naik pakej jdk ke direktori semasa:
Salin fail /etc/profile ke direktori semasa
[root@node2 /app/dockerfile/system/centos/jdk1.8]#cp profile /etc/profile
Tambah jdk pada penghujung profil Pembolehubah persekitaran
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim profile export java_home=/usr/local/jdk export tomcat_home=/apps/tomcat export path=$java_home/bin:$java_home/jre/bin:$tomcat_home/bin:$path export classpath=.$classpath:$java_home/lib:$java_home/jre/lib:$java_home/lib/tools.jar
Buat skrip shell binaan docker
[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim build-command.sh #!/bin/bash # docker build -t 172.20.7.50/baseimages/centos7.5-jdk:8.162 .
Mula buat imej
[root@node2 /app/dockerfile/system/centos/jdk1.8]#bash build-command.sh sending build context to docker daemon 189.8mb step 1/10 : from 172.20.7.50/baseimages/centos-base:7.5.1804 ---> 73d683a54877 step 2/10 : label maintainer "mr.luo <mr.luo@dklwj.com>" ---> running in 65604dd1f392 removing intermediate container 65604dd1f392 ---> c4720603ce38 step 3/10 : add jdk-8u162-linux-x64.tar.gz /usr/local/src/ ---> bc98adffe1b4 step 4/10 : run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk ---> running in df5a6f67f9fd removing intermediate container df5a6f67f9fd ---> 0ae1af0416c6 step 5/10 : add profile /etc/profile ---> eee23a69c0c8 step 6/10 : env java_home /usr/local/jdk ---> running in edbef8563e83 removing intermediate container edbef8563e83 ---> 5f783f642054 step 7/10 : env jre_home $java_home/jre ---> running in fa0e5f08e732 removing intermediate container fa0e5f08e732 ---> 28a4d31463d4 step 8/10 : env classpath $java_home/lib/:$jre_home/lib/ ---> running in 3c4ebb04ac62 removing intermediate container 3c4ebb04ac62 ---> 245f2dd82d52 step 9/10 : env path $path:$java_home/bin ---> running in 4f5e6093f0a9 removing intermediate container 4f5e6093f0a9 ---> 5be0e6261eea step 10/10 : run rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone ---> running in 52d8cb8463a8 removing intermediate container 52d8cb8463a8 ---> 9fb867ae8c39 successfully built 9fb867ae8c39 successfully tagged 172.20.7.50/baseimages/centos7.5-jdk:8.162
Lihat fail dalam direktori semasa
[root@node2 /app/dockerfile/system/centos/jdk1.8]#ls build-command.sh dockerfile jdk-8u162-linux-x64.tar.gz profile
Semak imej yang dibuat Bolehkah ia digunakan seperti biasa? buat direktori tomcat -base
[root@node2 /app/dockerfile/system/centos/jdk1.8]#docker run -it --rm 172.20.7.50/baseimages/centos7.5-jdk:8.162 bash [root@919844b164dc /]# java -version java version "1.8.0_162" java(tm) se runtime environment (build 1.8.0_162-b12) java hotspot(tm) 64-bit server vm (build 25.162-b12, mixed mode) [root@919844b164dc /]# date thu nov 22 21:17:49 cst 2018 [root@919844b164dc /]# exit exit
Buat fail docker[root@node2 ~]# cd /app/dockerfile/web/tomcat
[root@node2 /app/dockerfile/web/tomcat]#mkdir tomcat-base
Buat skrip binaan docker
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim dockerfile from 172.20.7.50/baseimages/centos7.5-jdk:8.162 label maintainer "mr.luo <mr.luo@dklwj.com>" run mkdir /apps add apache-tomcat-8.5.33.tar.gz /apps run ln -s /apps/apache-tomcat-8.5.33 /apps/tomcatLaksanakan untuk mencipta fail imej:
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim build-command.sh #!/bin/bash docker build -t 172.20.7.50/baseimages/centos-tomcat:8.5.33 .Gunakan yang dibuat imej untuk memulakan bekas Periksa sama ada ia berjaya dibuat, tambah -p untuk mendedahkan port semasa memulakan, dan uji pada mesin fizikal
[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#bash build-command.sh sending build context to docker daemon 9.625mb step 1/5 : from 172.20.7.50/baseimages/centos7.5-jdk:8.162 ---> 9fb867ae8c39 step 2/5 : label maintainer "mr.luo <mr.luo@dklwj.com>" ---> running in 9ce6fc4d2850 removing intermediate container 9ce6fc4d2850 ---> b68755061b28 step 3/5 : run mkdir /apps ---> running in b483c6b127f2 removing intermediate container b483c6b127f2 ---> 605c1a048a5f step 4/5 : add apache-tomcat-8.5.33.tar.gz /apps ---> 3c44f96ed41c step 5/5 : run ln -s /apps/apache-tomcat-8.5.33 /apps/tomcat ---> running in 4c1aa39a6c92 removing intermediate container 4c1aa39a6c92 ---> 9b3bc4f58cc9 successfully built 9b3bc4f58cc9 successfully tagged 172.20.7.50/baseimages/centos-tomcat:8.5.33Uji pada klien dengan penyemak imbas
Atas ialah kandungan terperinci Cara menggunakan Dockerfile untuk mencipta imej persekitaran berjalan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!