Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menjalankan volum pelekap docker menggunakan SDK Enjin Docker dan Golang

Cara menjalankan volum pelekap docker menggunakan SDK Enjin Docker dan Golang

PHPz
PHPzke hadapan
2024-02-09 15:24:08918semak imbas

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 安装卷

editor php Xigua hari ini akan memperkenalkan kepada anda cara menggunakan SDK enjin Docker dan Golang untuk menjalankan volum pemasangan docker. Docker ialah platform kontena yang popular, dan Docker Engine SDK ialah perpustakaan API untuk berinteraksi dengan Docker Engine. Golang ialah bahasa pengaturcaraan berkuasa yang boleh digunakan bersama dengan Docker Engine SDK untuk mencapai pengurusan kontena yang lebih fleksibel. Artikel ini akan memperkenalkan secara terperinci cara menggunakan SDK enjin Docker dan Golang untuk mencipta, mengurus dan menjalankan volum pemasangan docker, membolehkan anda menggunakan Docker dengan lebih baik untuk pembangunan dan penggunaan aplikasi. Mari mulakan!

Kandungan soalan

Saya sedang melihat dokumentasi SDK enjin docker (https://docs.docker.com/engine/api/sdk/) yang berkaitan dengan menjalankan Docker dengan Golang Saya ingin menjalankan bekas (didokumentasikan dengan baik) tetapi saya tidak dapat mencari cara untuk melekapkan volum semasa menjalankan bekas.

Idea saya ialah menggunakan Docker SDK untuk menjalankan arahan yang setara: docker 运行 -v $PWD:/tmp myimage Tetapi perpustakaan Golang os exec tidak dilaksanakan.

Adakah ini mungkin?

Penyelesaian

Bahagian contoh mengandungi kebanyakan perkara yang anda perlukan:

https://docs.docker.com/engine/api/sdk/examples/#run-a-container

Penting untuk diingat docker run ... Ini sedikit daripada kedua-duanya

  1. Buat bekas
  2. Mulakan bekas

Singkatan untuk docker run -v docker run --mount type=bind,source="$(pwd)"/target,target=/app

    resp, err := cli.containercreate(ctx, &container.config{
        image: "alpine",
        cmd:   []string{"echo", "hello world",},
      },
      &container.hostconfig{
        mounts: []mount.mount{
          {
             type: mount.typebind,
             source: "/local/dir",
             target: "/app",
          },
        },
     },
     nil,
     "",
   )

Jika anda hanya mahu satu fail

    resp, err := cli.ContainerCreate(ctx, &container.Config{
        Image: "alpine",
        Cmd:   []string{"echo", "hello world",},
      },
      &container.HostConfig{
        Binds: []string{
          "/local/dir/file.txt:/app/file.txt",
        },
      },
      nil,
      "",
   )

Berkaitan:

Atas ialah kandungan terperinci Cara menjalankan volum pelekap docker menggunakan SDK Enjin Docker dan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam