Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

  • 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
tomitz
なにもできない
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした