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記事参照)
Ubuntu 18.04でdockerをインストールした時のエラー
"このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています"
なんてエラーが出てsudo apt-get updateができない他、dockerインストールができない等の問題を引き起こしていました。
原因はつい先日入れたonedrive free clientの際にD-aptも入れてたらしく、それが更新を妨げていました。(全くdocker関係なし)
ということで、解決策は以下のサイト様を参考にしました。
hombre-nuevo.com/etc/apt/sources.list
をいじってあげると。
これで晴れてdockerインストールできます。
めでたしめでたし。
Ubuntu導入備忘録
何番煎じかわからないですが、自分のためにも記録を残しておきます。
<デュアルブート環境>
何度かやったことある方なら下記のリンクの方がコンパクトでわかりやすくまとめて下さっています。
一から事細かにという方は
linuxfan.infoこちら。
windowsの標準パーティション切り(ディスクの管理)でどうしても圧縮しきれず限界があったので、EaseUS Partition Masterというフリーソフトに頼って圧縮したい分だけ圧縮しました。
また、デュアルブート環境の構築の練習としては適当なUSB(32GB以上?)を用意してそれに構築してあげるのが良いかなと思います。
(USBにUbuntu 16.04入れてROS1稼働させてみたのですが、PCとUSBの間のアクセス制限なのかGPUがザコだったのか、シミュレーション回せませんでした。。。)
あと、grubとかいじってubuntuの動作変えたい場合はVMWareとかVirtual BOX使って仮想環境で色々いじってから本体のデュアルブート環境をいじるといいと思います。そうでないと、簡単にぶっ壊れてCUIで修理しないといけないから初心者には荷が重いことこの上ないです。
<明るさ調整>
GNOME特有の問題らしいですね。
特にLetsnoteだと巷の修正が効かなくて苦労しました。
下記のサイト様が非常に役に立ちました。
巷のサイトだと、acpi_backlight=vendorを追加するのはよく出てくるのですが、それだけだとletsnote君は言うこと聞いてくれません。 acpi_osi=がミソっぽいです。(理由はわからず。)
<onedrive導入>
Qiitaの記事を参考にしました。
qiita.com注意点
- 僕の場合はgdebiコマンドが初期の段階で使えなかったのでsudo apt-get installしました。これが使えないとDMDの導入ができないので大事なところ。
- 僕がやったとき、onedrive free clientが途中で止まってしまいました。しかし、homeディレクトリに戻ってしばらくしてから onedrive とコマンドをうってやったら再稼働してすべてのファイルがリンクできました。
<Ubuntu公開フォルダとandoridをリンク>
スマホとpcでさくっとファイル共有したいなということで以下のサイト様を参考にしました。
sekisuiseien.com僕はandroid側はX-ploreというアプリを使ってリンクさせました。
IPを調べるにはifconfigを利用。(ifconfigも初期に入ってなかった。。。)
ネックなのが、パスを効かれる部分で
/home/"user name"/公開
と入れるとなぜか認識してくれず。
/公開
とだけいれるとアクセス可能でした。
とりあえず導入初日はこんな感じ。