Docker 自分用メモ
docker run "イメージ名"
イメージからコンテナを作成
--name オプションでコンテナ名前付
--privileged でusb等のアクセス権付与
例えば、
sudo docker run -i -t --net host -e DISPLAY=$DISPLAY \ --privileged --name test1\ -v $HOME/.Xauthority:/root/.Xauthority:rw \ ubuntu /bin/bash
とすれば、ubunbtu起動時に
全権付与
名付け
ホストのネットワーク利用
ホストディスプレイ出力(xauthおよびDISPLAY値)
を指定してコンテナ作成。
この場合、
ホスト側の端末で
xhost local:
と打ってやればコンテナのアプリをディスプレイに出力可能。
コンテナ稼働が終わったら、
xhost -local: or xhost -
でディスプレイ出力を閉じる
docker stop/kill
コンテナ停止
イメージはあくまでコンテナを作るためのもとになるデータだからstart/stopには関係なし
docker start docker attach "コンテナID"
stop/killしたコンテナを再起動(killはコンテナを削除するわけではない)
attachすると起動したコンテナでbashできる。
attachの他、exec ~~~~ /bin/bash
も同様の働き(?)
attach状態を解除するためにはexitを入力してあげる。
exitした段階でコンテナは停止するので注意。
1 docker ps -a 2 docker container list 3 docker image list
1 停止しているコンテナからなにまで全てを表示
2 稼働中のコンテナリスト
3 イメージリスト
docker rm "container name"
コンテナのID番号を指定してコンテナを削除。
docker rmi "image name"
イメージの削除
タグ名を指定するとタグを削除してくれる。(タグが一つだけだと単なるイメージ削除になる(?)複数だとタグ削除。)
docker commit "コンテナ名" "イメージ名"
コンテナのイメージ化。
下のtagおよびpushとまとめて覚えておきたい。
dokcer tag "イメージ名" username/repository name:tag name docker push username/repository name:tagname
ローカルに保存しているイメージ名をdokcerルールに従って変更し、Docker Hubに送り出す。
docker cp "移送対象" "移送先"
ホスト<->コンテナ間のファイルコピーを行える優れコマンド。
<Dockerでanaconda環境を実行>
qiita.com
sudo docker run \ -d -i -t \ -p 8888:8888 \ --name jupyter-notebook \ -v $HOME/jupyter-notebook/notebooks:/opt/notebooks \ continuumio/anaconda3 \ /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --no-browser --allow-root"
上記だと--nameでコンテナに名前をつけている。
イメージをrunした後に
docker logs jupyter-notebook
とするとtoken付きURLが発行されている。(詳しくは上記Qiita記事参照)