9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

docker-machineでホスト(MacOS)のUSBデバイスをDockerコンテナにマウントする

Posted at

概要

  • Docker for Macで作成したDockerコンテナからホストのUSBデバイスにアクセスできない
  • Docker for Macで使われているHyperKitがUSBパススルーをサポートしていないから
    USB Passthrough · Issue #149 · moby/hyperkit · GitHub
  • VMならマウントできる
  • じゃあdocker-machineを使おう

Docker Machineのインストール

公式ドキュメント
Install Docker Machine | Docker Documentation

terminal
$ base=https://github.com/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine
  
$ docker-machine -v
docker-machine version 0.14.0, build 89b8332

デフォルトのVMを作成

VMの名前はdefaultとしています。
Dockerデーモンがインストールされた軽量Linuxディストリビューションであるboot2dockerの仮想マシンが作成されます。

terminal
$ docker-machine create --driver virtualbox default

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v18.06.1-ce

VirtualBoxからデフォルトVMにUSBデバイスを設定する

docker-machineを停止します。

terminal
$ docker-machine stop

VirtualBoxからdefaultのVMの設定を開き、USBコントローラを有効にします。
そこから、必要なUSBデバイスを追加します。
スクリーンショット 2018-10-30 12.11.43.png

docker-machineをもう一度立ち上げます。

terminal
$ docker-machine start

現在のシェルの環境変数を書き換えて対話式でdockerの操作をできるようにする

いくつかの環境変数をshellに設定します。
必要な環境変数は以下で確認できます。

terminal
$ docker-machin env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/tomitz/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)

上記の通り、eval $(docker-machine env)を実行します。

terminal
$ eval $(docker-machine env)

docker-machineのコマンド

terminal
起動
$ docker-machine start default

再起動
$ docker-machine restart default

停止
$ docker-machine stop default

強制停止
$ docker-machine kill default

SSHで接続
$ docker-machine ssh default

マシン一覧
$ docker-machine ls

statusの確認
$ docker-machine status default

マシンのdockerを最新にアップグレード
$ docker-machine upgrade default

マシン削除
$ docker-machine rm default
9
6
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
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?