เอฟเฟกต์สุดท้ายมีดังนี้
มีขั้นตอนไม่กี่ขั้นตอน
1. ติดตั้ง Docker CE 2. Run Redis Image 3. การเตรียมสภาพแวดล้อม Java 4. การเตรียมโครงการ 5. เขียน DockerFile 6. โครงการเปิดตัว 7. บริการทดสอบ
การเตรียมสิ่งแวดล้อม
1. ติดตั้ง Docker CE
ไม่แนะนำให้ใช้ในประเทศจีน: "สคริปต์สำหรับการติดตั้ง" จะดาวน์โหลดและติดตั้งช้ามาก ใช้ขั้นตอนที่ 1 ในการติดตั้งดูลิงค์ต่อไปนี้: วิธีการติดตั้งทั่วไป
1. วิธีการติดตั้งปกติ
Ubuntu 17.04 x64 ติดตั้ง Docker CE
http://www.ymq.io/2018/01/11/docker-install-docker-ce
2. ติดตั้งสคริปต์
ไม่แนะนำให้ใช้สคริปต์สำหรับการติดตั้งในประเทศ:
ติดตั้ง Docker CE
$ curl -fssl get.docker.com -o get-docker.sh $ sudo sh get-docker.sh
<เอาท์พุทถูกตัดทอน> หากคุณต้องการใช้ Docker เป็นผู้ใช้ที่ไม่ใช่รูทคุณควรพิจารณาผู้ใช้ของคุณไปยังกลุ่ม "นักเทียบท่า" ที่มีบางอย่างเช่น: sudo usermod -ag docker ของคุณ-USerremember ว่าคุณจะต้องออกจากระบบ อ้างถึง https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface สำหรับข้อมูลเพิ่มเติม
ตรวจสอบ Docker CE
ตรวจสอบว่ามีการติดตั้ง Docker CE อย่างถูกต้องโดยเรียกใช้ภาพ Hello-World
$ sudo docker run hello-worldroot@souyunku: ~# sudo docker imagesrepository image ime ime สร้าง sizehello-world ล่าสุด F2A91732366C 7 สัปดาห์ที่ผ่านมา 1.85kbb
2. เรียกใช้ภาพ Redis
1. รันกระจก
$ Docker Run -Name Redis -6379 -P 6379: 6379 -d redisunable เพื่อค้นหาภาพ 'Redis: ล่าสุด' Locallylatest: ดึงออกจาก Library/REDISC4BB02B17BB4: ดึงเสร็จสมบูรณ์ 58638ACF67C5 5D5F41793421: ดึงเสร็จสมบูรณ์ ED89FF0D9EB2: ดึง Digest Complete: Sha256: 0E773022CD6572A5153E5013AFCED0F7191652D3CDF9B1C6785EB13F6B2974B1STAT REDIS: Last2F1F20F672E386A61644E1C08232EA34BDFD6A0C2444B55FA833FCFD6DD207288
2. ตรวจสอบกระจก
ดูกระจก
root@souyunku: ~# images docker redisrepository id imag imag ime สร้าง sizeredis ล่าสุด 1E70071F4AF4 4 สัปดาห์ที่ผ่านมา 107MB
ดูกระบวนการกระจก
root@souyunku: ~# docker pscontainer id คำสั่งภาพคำสั่งสร้างพอร์ตสถานะชื่อ 2f1f20f672e3 redis "docker-entrypoint.s ... " 14 วินาทีที่ผ่านมา 14 วินาที 0.0.0.0.0.0:6379->6379/TCP REDIS-6379
ดูกระบวนการคอนเทนเนอร์
root@souyunku: ~# docker container pscontainer id คำสั่งภาพคำสั่งสร้างสถานะพอร์ตชื่อ 2f1f20f672e3 redis "docker-entrypoint.s ... " 7 นาทีที่ผ่านมา 7 นาที 0.0.0: 6379-> 6379/TCP REDIS-6379
3. ทดสอบบริการ Redis
เชื่อมต่อกับบริการ Redis ผ่าน Redis-Cli เพื่อทดสอบข้อมูลร้านค้า
root@souyunku: ~# Docker Run -it -Link Redis -6379: Redis - -RM Redis Redis -Cli -H Redis -P 6379Redis: 6379> SET นับ 1Okredis: 6379> รับนับ "1" Redis: 6379> exitroot@souyunku
3. การเตรียมสภาพแวดล้อม Java
หมายเหตุ: อ่านขั้นตอนต่อไปนี้! - -
1. สภาพแวดล้อม Java คือการรวบรวมโครงการตัวอย่าง GitHub Maven Springboot และเตรียมความพร้อม
2. หรือคุณสามารถรวบรวมและอัปโหลดในพื้นที่ด้วยตัวเอง จากนั้นติดตั้งสภาพแวดล้อม Java ต่อไปนี้: JDK, Maven, Git และคุณสามารถทำได้โดยไม่ต้องกำหนดค่า
1. ติดตั้ง JDK
ดาวน์โหลดวิธี JDK: 1
ดาวน์โหลด JDK1.8 ในสภาพแวดล้อม Linux โปรดไปที่ (เว็บไซต์ทางการ) เพื่อดาวน์โหลดไฟล์การติดตั้ง JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
ดาวน์โหลดวิธี JDK: 2
ลิงค์ของฉันใน Baidu Cloud Disk: http://pan.baidu.com/s/1jifzf9s รหัสผ่าน: U4N4
ดาวน์โหลดวิธี JDK: 3
ใช้ wget เพื่อดาวน์โหลด
$ WGET-NO-COOKIES-NO-CHECK-CERTIFICATE-หัวหน้า "COOKIE: GPW_E24 = HTTP%3A%2F%2FWWW.ORACLE.com%2F; ORACLELICENSE = ACTECT-SECUREBACKUBIE-COOKIE" http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
หมายเหตุถ้าใช้: ดาวน์โหลดวิธี JDK: 3
จากนั้นในขั้นตอนต่อไปนี้ jdk1.8.0_144 จะถูกแทนที่ด้วย jdk1.8.0_141
เริ่มการติดตั้ง
อัปโหลดไดเรกทอรี /opt
การบีบอัด
$ cd /opt $ tar zxvf jdk-8u144-linux-x64.tar.gz $ mv jdk1.8.0_144 / /lib /jvm
กำหนดค่าตัวแปรสภาพแวดล้อม
$ vi/etc/profile#jdkeExport java_home =/lib/jvmexport jre_home = $ {java_home}/jre export classpath = .: $ {java_home}/lib: $ {jre_home}ทำให้ตัวแปรสภาพแวดล้อมมีประสิทธิภาพ
$ source /etc /profile
ตรวจสอบ
root@souyunku: ~# java -versionjava เวอร์ชัน "1.8.0_141" Java (TM) SE สภาพแวดล้อมรันไทม์ (สร้าง 1.8.0_141-B15) Java Hotspot (TM) เซิร์ฟเวอร์ 64 บิต VM (สร้าง 25.141-B15, โหมดผสม) โหมดผสม)
2. ติดตั้ง maven
$ apt-get ติดตั้ง maven
ตรวจสอบ maven
root@souyunku: ~# mvn -vapache maven 3.3.9maven home:/usr/share/mavenjava เวอร์ชัน: 1.8.0_141, ผู้ขาย: Oracle Corporationjava หน้าแรก:/lib/jvm/jredefault locale: en_us, แพลตฟอร์ม "AMD64", ครอบครัว: "Unix"
3. ติดตั้ง Git
$ apt-get ติดตั้ง git
ตรวจสอบ maven
root@souyunku: ~# git -เวอร์ชันเวอร์ชัน 2.11.0
4. การเตรียมโครงการ
1. รวบรวมโครงการ
1. รวบรวมโครงการบนเซิร์ฟเวอร์ Maven ด้วยตัวเอง
ใช้ Git เพื่อโคลนโครงการ
$ git clone https://github.com/souyunku/other-projects.git
ใช้ Maven เพื่อรวบรวมโครงการ
$ CD อื่น ๆ โครงการ/Docker-Spring-Boot-Demo/
2. แก้ไขโครงการ
แก้ไขที่อยู่เซิร์ฟเวอร์ REDIS SPRING.REDIS.HOST = 45.32.44.217 เป็น IP ในท้องถิ่น เมื่อเรียกใช้อิมเมจ Redis Redis ได้รับการจัดทำขึ้นเป็นบริการเครือข่ายภายนอก 0.0.0.0:6379->6379/tcp
$ VI SRC/Main/Resources/Application.properties# Redis Server Address Spring.Redis.host = 45.32.44.217 $ MVN แพ็คเกจ
คัดลอกโครงการ Docker-spring-boot-demo-0.0.1-snapshot.jar ในเป้าหมาย / ไดเรกทอรีไปยังไดเรกทอรี / opt และจะใช้ในภายหลัง
$ CP Target/Docker-Spring-Boot-demo-0.0.1-snapshot.jar/opt/
2. รวบรวมโครงการใน Maven ท้องถิ่นและอัปโหลดไปยังไดเรกทอรี /opt และจะใช้ในภายหลัง
แก้ไขที่อยู่เซิร์ฟเวอร์ Redis ของ Application.properties
โครงการอื่น ๆ/Docker-Spring-Boot-Demo/Src/Main/Resources/Application.properties# ที่อยู่เซิร์ฟเวอร์ Redis Spring.redis.host = 45.32.44.217
5. เขียน DockerFile
การเขียน DockerFile ตาม Java: 8 Image
$ cd /opt /$ touch dockerfile $ vi dockerfile
เนื้อหาที่แก้ไขมีดังนี้
# ขึ้นอยู่กับภาพจาก Java: 8# เมาท์โฟลเดอร์ท้องถิ่นไปยัง Volume Volume /TMP# คัดลอกไฟล์ไปยังคอนเทนเนอร์หรือเขียนโดยตรงเป็นเพิ่ม Docker-Spring-Boot-Demo-0.0.1-snapshot.jar /souyunku-app. souyunku-app.jarrun bash -c 'touch /souyunku-app.jar'# เปิด 80 พอร์ตเปิดเผย 80# กำหนดค่าจุดเริ่มต้นคำสั่งหลังจากที่คอนเทนเนอร์เริ่มต้น ["java", "-djava.security.egd = ไฟล์:/dev /./ urandom"
VI. เผยแพร่โครงการ
1. รวบรวมภาพ
$ cd /opt /$ docker build -t souyunku -app: v1
การเห็นข้อมูลต่อไปนี้พิสูจน์ให้เห็นว่า DockerFile ของคุณไม่เลวและภาพได้ถูกรวบรวมสำเร็จ
การส่งบริบทการสร้างไปยัง Docker Daemon 18.72Mbstep 1/6: จาก Java: 88: ดึงออกจาก Library/Java5040BD298390: ดึง FCE5728AAD85 ที่สมบูรณ์: ดึงเสร็จสมบูรณ์ 76610EC20BF5: ดึงเสร็จสมบูรณ์ 60170FEC2151 49E2D6393F32: ดึง BB9CDEC9C7F3 ที่สมบูรณ์: PULL COMPLETE DIGEST: SHA256: C1FF613E8BA25833D2E1940DA0940C3824F03F802C449F3D1815A66B7F8244F03F802C449F3D1815 ---> D23BDF5B1B1BSTEP 2/6: VOLUME/TMP ---> ทำงานใน 0559A62B0CD5REMOVING RIDMEDIATE Container 0559A62B0CD5 ---> B1F3846913A4STEP 3/6 souyunku-app.jar ---> 9f60dad5d2acstep 4/6: เรียกใช้ bash -c 'touch /souyunku-app.jar' ---> วิ่งใน 39d5c09ab614Removing Intermediate Container 39d5c09ab614 ---> 2B691Adf792222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 11A577437A23 การปรับปรุงคอนเทนเนอร์ระดับกลาง 11A577437A23 ---> 78815D6FE6B2STEP 6/6: จุดเข้า ["java", "-djava.security.egd = ไฟล์:/dev/. ECA10FED3D02REMOVING Intermediate Container ECA10FED3D02 ---> 8EC4E85A0F05 สร้างขึ้นมาอย่างประสบความสำเร็จ 8EC4E85A0F05 อย่างประสบความสำเร็จติดแท็ก Souyunku-App: V1: V1
2. ดูกระจก
root@souyunku:/opt# docker images souyunku-apprepository ime ime สร้างขนาด Sizesouyunku-app v1 8ec4e85a0f05 2 นาทีที่ผ่านมา 681mb
3. เรียกใช้กระจก
พื้นหลัง Daemon ทำงานจากนั้นแมปพอร์ตคอนเทนเนอร์กับพอร์ตเครือข่ายภายนอก 80
root@souyunku:/opt# docker run -name myspringboot -d -p 80:80 souyunku -app: v1e68d438603619e363883d4ee65d3918e1c3e00f867731207bccf06f569064
4. ดูกระบวนการ
ตรวจสอบกระบวนการคอนเทนเนอร์และคุณจะเห็นว่า Redis อยู่ในพอร์ต 6379 และโครงการ MySpringBoot อยู่ที่พอร์ต 80
root@souyunku:/opt# docker container pscontainer id คำสั่งรูปภาพสร้างสถานะพอร์ตสถานะ Namese68d43860361 Souyunku-App: v1 "java -djava.securit ... " ประมาณหนึ่งนาทีที่ผ่านมาประมาณ 0.0.0.0.0.0.0. "Docker-entrypoint.s ... " 39 นาทีที่แล้วขึ้นไป 39 นาที 0.0.0.0:6379->6379/tcp Redis-6379
7. บริการทดสอบ
การเข้าถึงเบราว์เซอร์: http://127.0.0.1/ แน่นอนว่าฉันไม่ได้ป้อน 127.0.0.1 ฉันทำมันโดยตรงบนเซิร์ฟเวอร์และใช้ IP สาธารณะ
นักเทียบท่า
Docker Compose เป็นหนึ่งในโครงการ Orchestration อย่างเป็นทางการซึ่งรับผิดชอบในการปรับใช้แอปพลิเคชันแบบกระจายในกลุ่มอย่างรวดเร็ว
แอปพลิเคชันที่ใช้คอนเทนเนอร์ Docker มักจะประกอบด้วยคอนเทนเนอร์หลายตัว ด้วย การเขียน Docker คุณไม่จำเป็นต้องใช้เชลล์สคริปต์เพื่อเริ่มคอนเทนเนอร์อีกต่อไป ในไฟล์การกำหนดค่าคอนเทนเนอร์ทั้งหมดจะถูกกำหนดโดยบริการจากนั้นใช้สคริปต์ ที่ใช้งาน Docker เพื่อเริ่มหยุดและรีสตาร์ทแอปพลิเคชันและบริการในแอปพลิเคชันและคอนเทนเนอร์ทั้งหมดที่ขึ้นอยู่กับบริการ
สรุป
ข้างต้นเป็นรหัสตัวอย่างสำหรับโครงการ Springboot การปรับใช้ Docker ที่ตัวแก้ไขแนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!