首頁 >後端開發 >Golang >如何使用 Docker 引擎 SDK 和 Golang 運行 docker 安裝卷

如何使用 Docker 引擎 SDK 和 Golang 運行 docker 安裝卷

PHPz
PHPz轉載
2024-02-09 15:24:08925瀏覽

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

php小編西瓜今天將為大家介紹如何使用Docker引擎SDK和Golang來運行docker安裝卷。 Docker是一種受歡迎的容器化平台,而Docker引擎SDK則是與Docker引擎互動的API庫。 Golang是一種強大的程式語言,與Docker引擎SDK結合使用可以實現更靈活的容器管理。本文將詳細介紹如何使用Docker引擎SDK和Golang來建立、管理和運行docker安裝卷,讓您更能利用Docker進行應用程式開發和部署。讓我們開始吧!

問題內容

我正在查看與使用 Golang 運行 Docker 相關的 docker 引擎 SDK 文件 (https://docs.docker.com/engine/api/sdk/) 我想運行一個容器(有詳細記錄),但我找不到如何在運行容器時掛載磁碟區。

我的想法是使用 Docker SDK 運行等效命令: docker 運行 -v $PWD:/tmp myimage# 但不執行 Golang os exec 函式庫。

這可能嗎?

解決方法

範例部分包含您需要的大部分內容:

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

#重要的是要記住 docker run ... 兩者兼而有之

  1. 建立一個容器
  2. 啟動一個容器

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,
     "",
   )

如果您只想要一個檔案

    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,
      "",
   )

相關:

以上是如何使用 Docker 引擎 SDK 和 Golang 運行 docker 安裝卷的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除