Ubah suai laluan maklumat fail seperti berikut:
/etc/docker/daemon.json
Tambah kandungan berikut dalam fail konfigurasi:
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
Nota: Jika anda tidak mempunyai daemon.json ini, buat sendiri dalam direktori /etc/docker/
touch daemon.json
tcp mendayakan akses jauh dan unix mendayakan akses tempatan Jika akses tempatan tidak didayakan, ralat berikut akan berlaku apabila menggunakannya pada pelayan:
Tidak dapat menyambung ke daemon Docker di unix:///var/run/docker .sock. Adakah daemon docker sedang berjalan ?
Selepas pengubahsuaian selesai, laksanakan arahan berikut mengikut urutan:
#重新加载配置文件 systemctl daemon-reload # 重启服务 systemctl restart docker.service # 查看端口是否开启 默认端口2375 netstat -anp|grep 2375
Laksanakan arahan berikut mengikut urutan
添加指定需要开放的端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent 重载入添加的端口: firewall-cmd --reload 查询指定端口是否开启成功: firewall-cmd --query-port=2375/tcp
Nota: Konfigurasi di atas semuanya dilakukan apabila firewall dihidupkan tidak dihidupkan, konfigurasi di atas tidak diperlukan Sebagai contoh, pelayan saya tidak mempunyai firewall yang dikonfigurasikan Jalankan Maklumat berikut dipaparkan:
Akhirnya kami melihat jika kami. konfigurasi berkesan
curl http://127.0.0.1:2375/info
Jika maklumat berikut muncul, konfigurasi berjaya
Jika versi idea anda lebih tinggi, pemalam docker terbina dalam
Jika tidak, jangan risau, kami boleh memasangnya sendiri
Nota: Saya melebihi 192.168.1.2 ialah IP pelayan saya sendiri, cuma tukarkannya kepada IP pelayan tempat docker anda berada
Selepas mengklik Guna, ia akan muncul dalam perkhidmatan anda
Klik sambung, kami akan menemui maklumat Kontainer konfigurasi docker kami
Pasang pemalam: Docker-maven-plugin
<!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
Semua konfigurasi maven saya adalah seperti berikut:
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.6 com.example docker 0.0.1-SNAPSHOT docker docker 11 true true org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test <!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> org.springframework.boot spring-boot-maven-plugin
Nota: Selepas kami berjaya menarik pemalam, kami akan mendapati bahawa struktur direktori menjadi seperti berikut:
Kami perlu memadamkan kelas permulaan, jika tidak pembungkusan akan gagal. Saya memadamkan DockerApplication secara langsung
Sebelum membina imej, kami perlu membungkus projek dahulu Operasi
Masukkan direktori projek kami melalui cmd
Laksanakan
mvn docker:build
Mesej berikut muncul Menunjukkan pembungkusan yang berjaya
Seterusnya, kembali kepada idea kami dan anda boleh melihat bahawa
Ini adalah apa yang telah kami bungkus Mirror
laksanakan
docker images
pada pelayan dan anda juga boleh melihat maklumat cermin
pada pelayan kami Laksanakan dalam
docker run -d --name idea-docker-test -p 8089:8080 docker
Nota: The sebab saya mendedahkan port 8089 adalah kerana konflik dengan 8080. Cuma tukar mengikut situasi anda sendiri
Terima Mari lawati antara muka ujian yang kami tulis:
Anda dapat melihat bahawa ia telah digunakan dengan jayanya dan ia juga boleh diakses dengan jayanya
Kita dapat melihat bahawa ia juga boleh boleh dilihat dalam Idea Mari kita ke imej yang baru kita mulakan dengan jayanya dan output log
Atas ialah kandungan terperinci Bagaimanakah idea membungkus dan menggunakan projek SpringBoot dengan cepat ke dalam imej Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!