


Artikel ini membawa anda pengetahuan yang berkaitan tentang menggunakan projek Go berdasarkan imej docker, termasuk isu yang berkaitan dengan menulis program web GoLang dan menyusun pakej di bawah Linux. Saya harap ia akan membantu semua orang.
Pengetahuan kebergantungan
- Pergi asas kompilasi silang
- Asas Docker
- Asas imej tersuai fail Docker
- Asas menulis fail orkestra-komposisi Docker
tentu saja, anda boleh mengikuti langkah ini untuk menyelesaikan penggunaan walaupun anda tidak tahu sama sekali. masalah kecil di tengah, anda tidak akan tahu bagaimana untuk menyelesaikannya. Sudah tentu anda juga boleh meninggalkan mesej.
Saya membangun dan menguji pada persekitaran mac Jika anda menggunakan tingkap, mungkin terdapat beberapa perbezaan, tetapi sepatutnya tiada masalah besar.
1. Persekitaran kebergantungan
- Docker
2 Tulis program web GoLang
Saya akan menulis satu di sini Program hello world yang paling mudah, port mendengar ialah port 80.
Cipta fail main.go
baharu dengan kandungan berikut:
package mainimport ( "fmt" "log" "net/http")func sayHello(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello world")}func main() { http.HandleFunc("/", sayHello)//注册URI路径与相应的处理函数 log.Println("【默认项目】服务启动成功 监听端口 80") er := http.ListenAndServe("0.0.0.0:80", nil) if er != nil { log.Fatal("ListenAndServe: ", er) }}
3 Susun ke dalam pakej program di bawah Linux
Saya membangunkannya pada mac dan perlu menggunakannya. pergi. Kompilasi silang, jika anda tidak biasa dengan kompilasi silang, anda boleh menyemak dokumentasi, atau terus menyalin arahan saya di bawah untuk menyusun.
Kami mahu menjalankannya dalam Docker
, berdasarkan imej golang
, jadi kami perlu menyusunnya menjadi program yang serasi dengan pemproses i386
.
sudo env GOOS=linux GOARCH=386 go build main.go
Selepas kompilasi ini selesai, akan ada satu lagi program main
di dalam negara, jadi biarkan sahaja buat sementara waktu.
4. Gunakan Dockerfile
untuk menyesuaikan imej program go kami
Buat folder baharu, buat fail Dockerfile
baharu di dalamnya dan kemudian buat dua app
baharu dan script
dalam dokumen itu. Letakkan program main
dalam langkah sebelumnya ke dalam folder app
, dan buat fail skrip script
baharu dalam build.sh
Abaikan kandungan fail itu buat masa ini, saya akan membincangkannya kemudian.
Struktur fail khusus adalah seperti berikut.
. ├── Dockerfile ├── app │ └── main └── script └── build.sh
Berikut adalah untuk menulis kandungan fail Dockerfile
saya akan kodkan kandungannya dahulu:
FROM golang MAINTAINER 青羽 WORKDIR /go/src/COPY . .EXPOSE 80CMD ["/bin/bash", "/go/src/script/build.sh"]
Terangkan di sini:
- <.>
- Dari mana imej itu disepadukan Program go kami secara rasminya menyediakan imej seperti
FROM
, yang boleh kami gunakan secara langsung.golang
- Untuk melindungi nama ini.
MAINTAINER
- Direktori berfungsi.
WORKDIR
- Ini ialah arahan salin yang menyalin semua fail tempatan ke direktori kerja.
COPY
- Ini ialah port yang dibangunkan oleh pihak lain Saya membuka port 80 secara lalai Ini boleh diubah suai mengikut situasi sebenar
EXPOSE
- Jalankan arahan dengan parameter Saya menulisnya seperti ini, ia adalah Untuk melaksanakan skrip
CMD
apabila imej bermula, arahan untuk memulakan program pergi ditulis dalam skrip ini.script/build.sh
Di sini saya tampal kandungan:
#!/usr/bin/env bash cd /go/src/app/ && ./mainHanya dua baris ini. 5. Susun imej kita sendiri Ini milik pengetahuan
, saya akan tampal arahan. Docker
docker build -t go-web .
- Arahan ini dilaksanakan jika imej
- tidak wujud secara setempat, ia akan pergi ke perpustakaan imej rasmi dahulu untuk menarik imej dan kemudian kita boleh menunggu untuk dia secara senyap.
golang
- Parameter ini ialah nama imej kompilasi terakhir anda. Anda boleh mengubah suainya sesuka hati atau menambah nombor versi seperti:
go-web
.go-web:v1
dalam imej tempatan anda. Anda boleh menggunakan go-web
untuk bertanya: docker images
docker-compose.yml
Ini adalah langkah terakhir untuk kita jika kita hanya menyusun dengan untuk menjalankan program go kami: go-web
version: '2'networks: basic:services: world: container_name: world image: go-web ports: - "8099:80" volumes: - ./app/go/world:/go/src/app:rw networks: - basicPada ketika ini fail orkestra kami telah ditulis Sekarang kami hanya perlu menggunakan
untuk memulakan fail orkestrasi kami adalah sebagai berikut :docker-compose
docker-compose -f docker-compose.yml up -d worldJika gesaan berikut dikeluarkan, ini bermakna permulaan berjaya.
Creating world ... doneSelepas permulaan berjaya, anda boleh menggunakan
docker psuntuk menyemak sama ada permulaan itu berjaya. Sekarang lawati
untuk mengakses program go kami. http://127.0.0.1:8099
tutorial video buruh pelabuhan"
Atas ialah kandungan terperinci Sebarkan projek go berdasarkan imej Docker (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Menggunakan Docker di Linux dapat meningkatkan kecekapan pembangunan dan penempatan. 1. Pasang Docker: Gunakan skrip untuk memasang Docker di Ubuntu. 2. Sahkan pemasangan: Jalankan Sudodockerrunhello-World. 3. Penggunaan Asas: Buat kontena Nginx Dockerrun-Namemy-Nginx-P8080: 80-Dnginx. 4. Penggunaan Lanjutan: Buat imej tersuai, bina dan lari menggunakan Dockerfile. 5. Pengoptimuman dan amalan terbaik: Ikuti amalan terbaik untuk menulis dockerfiles menggunakan pelbagai peringkat membina dan dockercompose.

Inti pemantauan Docker adalah untuk mengumpul dan menganalisis data operasi bekas, terutamanya termasuk petunjuk seperti penggunaan CPU, penggunaan memori, trafik rangkaian dan cakera I/O. Dengan menggunakan alat seperti Prometheus, Grafana dan Cadvisor, pemantauan komprehensif dan pengoptimuman prestasi bekas dapat dicapai.

Dockerswarm boleh digunakan untuk membina kelompok kontena berskala dan sangat tersedia. 1) Mulakan kelompok kawanan menggunakan DockersWarminit. 2) Sertai kelompok kawanan untuk menggunakan dockerswarmjoin-terperangkap:. 3) Buat perkhidmatan menggunakan DockerServiceCreate-Namemy-Nginx-Replicas3nginx. 4) Menyebarkan perkhidmatan kompleks menggunakan dockerStackDeploy-cdocker-compose.ymlmyApp.

Bagaimana cara menggunakan Docker dan Kubernet untuk melaksanakan orkestrasi kontena aplikasi perusahaan? Melaksanakannya melalui langkah -langkah berikut: Buat imej Docker dan tolak ke DockerHub. Buat penempatan dan perkhidmatan di Kubernet untuk menggunakan aplikasi. Gunakan Ingress untuk menguruskan akses luaran. Memohon pengoptimuman prestasi dan amalan terbaik seperti pembinaan pelbagai peringkat dan kekangan sumber.

Soalan Lazim Docker boleh didiagnosis dan diselesaikan melalui langkah -langkah berikut: 1. Lihat status kontena dan log, 2. Periksa konfigurasi rangkaian, 3. Pastikan bahawa kelantangan dipasang dengan betul. Melalui kaedah ini, masalah di Docker boleh ditempatkan dengan cepat dan tetap, meningkatkan kestabilan sistem dan prestasi.

Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.

Kaedah Peningkatan Keselamatan Docker termasuk: 1. Gunakan parameter-cap-drop untuk menghadkan keupayaan Linux, 2. Buat bekas baca sahaja, 3 set tag Selinux. Strategi ini melindungi bekas dengan mengurangkan pendedahan kelemahan dan mengehadkan keupayaan penyerang.

Dockervolumes memastikan data tetap selamat apabila bekas dimulakan semula, dipadam, atau berhijrah. 1. Buat Jilid: DockervolumecreatemyData. 2. Jalankan bekas dan gunung: dockerrun-it-vmydata:/app/dataubuntubash. 3. Penggunaan lanjutan termasuk perkongsian data dan sandaran.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini