Projek Docker-Compose ialah projek sumber terbuka rasmi Docker, bertanggungjawab untuk merealisasikan orkestrasi pantas gugusan kontena Docker. Karang membenarkan pengguna mentakrifkan satu set bekas aplikasi yang berkaitan sebagai projek melalui fail templat docker-compose.yml (format YAML) yang berasingan. Projek Docker-Compose ditulis dalam Python dan memanggil API yang disediakan oleh perkhidmatan Docker untuk mengurus bekas. Oleh itu, selagi platform yang anda kendalikan menyokong API Docker, anda boleh menggunakan Karang untuk pengurusan orkestrasi.
Docker-Compose membahagikan bekas terurus kepada tiga lapisan, iaitu projek, perkhidmatan dan bekas. Semua fail dalam direktori berjalan Docker-Compose (docker-compose.yml, memanjangkan fail atau fail pembolehubah persekitaran, dll.) membentuk projek Jika tiada spesifikasi khas, nama projek ialah nama direktori semasa. Projek boleh mengandungi berbilang perkhidmatan dan setiap perkhidmatan mentakrifkan imej, parameter dan kebergantungan untuk bekas dijalankan. Perkhidmatan boleh menyertakan berbilang contoh bekas Docker-Compose tidak menyelesaikan masalah pengimbangan beban, jadi alat lain diperlukan untuk mencapai penemuan perkhidmatan dan pengimbangan beban.
Fail konfigurasi projek lalai Docker-Compose ialah docker-compose.yml Fail konfigurasi boleh disesuaikan melalui pembolehubah persekitaran COMPOSE_FILE atau parameter -f, yang mentakrifkan berbilang perkhidmatan bergantung dan operasi setiap perkhidmatan. bekas.
Menggunakan fail templat Dockerfile membolehkan pengguna mentakrifkan bekas aplikasi berasingan dengan mudah. Di tempat kerja, kita sering menghadapi situasi di mana beberapa bekas perlu bekerjasama antara satu sama lain untuk menyelesaikan tugas tertentu. Contohnya, untuk melaksanakan projek Web, sebagai tambahan kepada bekas perkhidmatan Web itu sendiri, selalunya perlu menambah bekas perkhidmatan pangkalan data belakang dan juga bekas pengimbangan beban.
Arahan biasa
docker-compose
Fungsi Karang ialah untuk "mentakrif dan menjalankan aplikasi berbilang bekas Docker". Menggunakan Karang, anda boleh mengkonfigurasi perkhidmatan aplikasi anda dalam fail konfigurasi (format yaml), dan kemudian menggunakan satu arahan untuk mencipta dan memulakan semua perkhidmatan yang dirujuk dalam konfigurasi.
Dua konsep penting dalam Karang:
• Perkhidmatan: Bekas aplikasi sebenarnya boleh menyertakan beberapa contoh bekas yang menjalankan imej yang sama.
• Projek: Unit perniagaan lengkap yang terdiri daripada satu set bekas aplikasi yang berkaitan, ditakrifkan dalam fail docker-compose.yml.
Muat turun dan pasang melalui pautan GitHub Pengguna bukan ROOT ingat untuk menambah sudo
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
untuk memberikan keizinan boleh laku fail muat turun binari
sudo chmod +x /usr/local/bin/docker-compose
untuk mengesahkan Sama ada hendak memasang
docker-compose --version
Nyahpasang
Jika ia dipasang sebagai pakej binari, hanya padamkan fail binari
rm /usr/local/bin/docker-compose
compose docker-compose.yml eureka Dockerfile eureka-server-2.0.2.RELEASE.jar user Dockerfile user-2.0.2.RELEASE.jar power Dockerfile power-2.0.2.RELEASE.jar
Karang Penggunaannya sangat mudah, anda hanya perlu menulis docker-compose.yml, dan kemudian gunakan arahan docker-compose untuk beroperasi. docker-compose.yml menerangkan konfigurasi bekas dan arahan docker-compose menerangkan pengendalian bekas.
1. Mari kita gunakan projek microservice untuk melakukan contoh mudah Mula-mula, buat direktori kerja, kemudian buat folder jenkinsTest, letakkan pakej balang boleh laku di dalamnya dan tulis fail Dockerfile.
Jenkins menyimpan pakej balang yang dimuat naik untuk ujian
docker-compose.yml
version: '3.1' #这里要指定docker-compose对应的docker版本 services: jenkinstest: #指定服务名 #image: jenkinstest #指定镜像名称 小写不然会报错 build: ./jenkinsTest #指定Dockfile所在路径 ports: - 8099:8099 #指定端口映射 expose: - 8099 #对外暴露的服务端口
Fail Dockerfile
FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly #作者 MAINTAINER lkz # 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效 EXPOSE 8099 COPY jenkinsTest.jar 11.jar # 在镜像运行为容器后执行的命令 ENTRYPOINT ["java","-jar","11.jar"]
docker-compose up -d
Konfigurasi adalah sama seperti di atas
Ubah suai Fail docker-compose.yml
version: '3.3' services: eureka: image: eureka:v1 #指定镜像名称 build: ./eureka #指定Dockfile所在路径 ports: - 8080:8080 user: image: user:v1 build: ./user #指定Dockfile所在路径 ports: - 8081:8081 power: image: power:v1 build: ./power #指定Dockfile所在路径 ports: - 8082:8082
Atas ialah kandungan terperinci Bagaimana untuk menerbitkan projek springboot menggunakan imej docker-compose. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!