LoginSignup
1
3

More than 3 years have passed since last update.

Docker 関連 備忘録

Last updated at Posted at 2019-12-28

Dockerを使用している時に、あれどうやるんだっけ?と忘れることが多いので、忘備録として記録しておきます。

Dockerイメージを探す

$ docker search {イメージ名}
## ubuntuを探す場合
docker search ubuntu:latest

Dockerイメージを取得する

$ docker pull {イメージ名}

稼働中のコンテナイメージを確認する

$ docker ps

(停止中のものも含め)稼働中のDockerイメージを確認する

$ docker ps -a

Dockerのログを表示する

$ docker logs {コンテナID}
# -f をつけると、リアルタイムでログが追加されていく様子がわかる(tail -fと同じ)
$ docker logs -f {コンテナID}

Dockerコンテナを削除する

$ docker rm {コンテナID}

Dockerプロセスにログインする

$ docker exec -it {コンテナID} /bin/bash

Dockerプロセスに(rootで)ログインする

$ docker exec -it --user root {コンテナ名} /bin/bash

Docker起動して、必要なものを実行して削除(ps -aにも残らない)

$ docker run -rm {コンテナ名} {コマンド} 

実行した後、いちいち削除しなくてよいので、意外と便利

ローカルのディレクトリをdocker imageから参照できるようにする(-vオプション)。さらにカレントディレクトリをそのディレクトリにする(-wオプション)

$ docker run -rm -v {ローカルディレクトリへのパス}:{docker内でのパス〜例えば/mytest} -w {docker内でのパス〜例えば/mytest} {コンテナ名} {コマンド}

docker imageにインストールなど実行した後、コンテナをイメージに反映する。

$ docker commit {コンテナID} {コンテナ名}

VScodeから remote container拡張機能を利用して、リモートマシンのdockerコンテナに接続する(ローカルマシンとリモートマシンは別ノード)

今回はローカルがMacOS(mojave)、リモートがUbuntu18.04

ステップ0

vscodeに、remote container追加

ステップ1

.settings.jsonに以下を追記する

 "docker.host": "ssh://user_id@www.xxx.yyy.zzz"

これでremote os上のdockerのイメージもしくはプロセスに接続できる。
リモート一覧には、dockerコンテナが表示されるようになる。
vscodeからattachしにいくと、vscode-serverがインストールされる模様。
しかし、これではコンテナ上でvscodeの初期設定をしなくてはならない。
extensionやら、launch.jsonやらなにやら、、、
そもそもリモートマシン上でコンテナを起動しなくてはならない。
他にもdocker内でgit使えるようにするためにsshのconfigとか置くのが面倒くさい。

ステップ2(途中)

やっぱり、VScodeから直接image作成したり、ステップ1で上記のことをしないで住むようにしたい。
vscodeの以下のディレクトリ(.vscodeディレクトリと同等の場所)
.devcontainerに、以下のファイルを配置して、
devcontainer.json
Dockerfile
vscodeから直接imageの作成、必要なvscodeのextensionのインストール設定ができる模様。
軽く設定してみて実行してみたところ、リモートのディレクトリとローカルのディレクトリがマウントできないといったあたりでエラー、それ以上進まず。

1
3
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
3