1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacOS上でDockerをREST APIを用いて操作するやり方

Posted at

今回はMacOS上で開発をするうえで、DockerをREST APIを用いて操作する際のやり方を紹介していきたいと思います。

DockerはREST APIを用いてDockerコンテナ自体の立ち上げから停止などの様々な動作を執り行うことができます。
まず最初に、Dockerの設定を変更する必要があります。
スクリーンショット 2024-03-21 9.34.37.png

まず最初にPreferencesをクリックします。
そうすると設定画面が表示されますので、その画面の
スクリーンショット 2024-03-21 9.35.41.png

Docker Engineの項目をクリックしてください。
その後、JSON形式で設定が表示されるので、そこのhostsのところを

  "hosts": [
    "unix:///var/run/docker.sock"
  ],

となっているので、

  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2375"
  ],

となるように、します。
こうすることで、HTTPリクエストを受け付けるようになり、REST APIでの操作が可能になります。
ただし、これは全てのリクエストを受け付けるようにするものなので、場合によっては0.0.0.0となっているところを127.0.0.1等して調整する必要があります。

その後、Dockerを再起動してください。
次に、Dockerを動かすためにsocatをMacOS上にインストールしてください。
Homebrewがあるので、そこでインストールしてください。

brew install socat

でインストールできます。
その後、TCPでLISTENするようにコマンドを打ちます。

そのコマンドが下記です

socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock

で、DockerとホストOSが2375番のポートでやり取りができるようにしました。
ちなみにこのコマンドを実行すると、そのターミナルは使えなくなりますので、新しく開いてください。

※上記のコマンドはセキュリティ上リスクをはらみます。
もしMacOSを本番環境に使う場合はこのコマンドを実行するのは推奨されません。

次に、APIを叩きます。
Linuxでは、

http://IPアドレス:2375/containers/create

と叩きます。もちろん複数のMacOSでやり取りをする場合は別ですが、今回はホストOSにもう一台Dockerコンテナを立ち上げる前提です。

その場合はIPアドレスの箇所を

host.docker.internal

に書き換えて叩いてください。

以上です。
ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?