cari
RumahOperasi dan penyelenggaraanDockerSebarkan projek go berdasarkan imej Docker (contoh terperinci)

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.

Sebarkan projek go berdasarkan imej Docker (contoh terperinci)

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/ && ./main
Hanya 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

Sebarkan projek go berdasarkan imej Docker (contoh terperinci)

Apabila anda melihat output di atas, ini bermakna kompilasi berjaya dan terdapat imej bernama

dalam imej tempatan anda. Anda boleh menggunakan go-web untuk bertanya: docker images

Sebarkan projek go berdasarkan imej Docker (contoh terperinci)

6. Menulis fail

docker-compose.yml

Ini adalah langkah terakhir untuk kita jika kita hanya menyusun dengan

untuk menjalankan program go kami: go-web

version: &#39;2&#39;networks:
  basic:services:
  world:
    container_name: world
    image: go-web
    ports:
      - "8099:80"
    volumes:
      - ./app/go/world:/go/src/app:rw
    networks:
      - basic
Pada 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 world
Jika gesaan berikut dikeluarkan, ini bermakna permulaan berjaya.

Creating world ... done
Selepas permulaan berjaya, anda boleh menggunakan

docker ps
untuk menyemak sama ada permulaan itu berjaya.

Sekarang lawati

untuk mengakses program go kami. http://127.0.0.1:8099

Pembelajaran yang disyorkan: "

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!

Kenyataan
Artikel ini dikembalikan pada:CSDN. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Menggunakan Docker dengan Linux: Panduan KomprehensifMenggunakan Docker dengan Linux: Panduan KomprehensifApr 12, 2025 am 12:07 AM

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.

Pemantauan Docker: Mengumpulkan Metrik dan Penjejakan Kesihatan BekasPemantauan Docker: Mengumpulkan Metrik dan Penjejakan Kesihatan BekasApr 10, 2025 am 09:39 AM

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.

Docker Swarm: Membina Kluster Kontena Skala dan TahanDocker Swarm: Membina Kluster Kontena Skala dan TahanApr 09, 2025 am 12:11 AM

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.

Docker dengan Kubernet: Orchestration Container untuk Aplikasi PerusahaanDocker dengan Kubernet: Orchestration Container untuk Aplikasi PerusahaanApr 08, 2025 am 12:07 AM

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.

Penyelesaian Masalah Docker: Mendiagnosis dan Menyelesaikan Masalah BiasaPenyelesaian Masalah Docker: Mendiagnosis dan Menyelesaikan Masalah BiasaApr 07, 2025 am 12:15 AM

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.

Soalan Temuduga Docker: Ace Wawancara Kejuruteraan DevOps AndaSoalan Temuduga Docker: Ace Wawancara Kejuruteraan DevOps AndaApr 06, 2025 am 12:01 AM

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.

Docker Security Hardening: Melindungi bekas anda dari kelemahanDocker Security Hardening: Melindungi bekas anda dari kelemahanApr 05, 2025 am 12:08 AM

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.

Jilid Docker: Menguruskan data berterusan dalam bekasJilid Docker: Menguruskan data berterusan dalam bekasApr 04, 2025 am 12:19 AM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows

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

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini