Dockerをちゃんとやる

Dcokerをちゃんとやる

MLOpsを仕事で扱っていきたいので、その周辺の技術を学んでいくシリーズです。
まずはDockerです。
仕事では使ってますが、記事とか書いたことなかったので、少しずつアウトプットしていければと思います。

 

Dockerとは?

コンテナ型アプリケーション実行環境です。
Go言語で書かれています。

 

コンテナ型仮想化

特徴

ゲストOSを持たない

メリット

・起動が早い
・サイズが小さい
・アプリケーション実行の再現性が高い

デメリット

・OSの自由度
・分離レベルは低い

 

Dockerコマンド一覧

images
docker imageの詳細を表示させる

inspect
dockerの詳細を表示させる

rmi
docker imageを削除するコマンド。rmではなく、rmiであることに注意しましょう

rm
docker containerを削除するコマンド

pull
docker imageをpullしてくる

pause
dockerを一時停止する

unpause
dockerの一時停止状態を解除

attach
dockerコンテナに接続する
コンテナは稼動している必要がある

exec
コンテナが稼動していなくても、コンテナに接続することができます。
docker exec -it コンテナ名 bin/bashとかでよく使います

attachとexecとの違いについては下記
Docker attach と exec

オプション

-d
デタッチモード
バックグラウンドで動かしたいときに使用する

–name
名前を指定することができる

-t
ttyデバイスを使用する。
例:docker build -t タグ名 .
  「.」は、ビルドコンテキストを指します

ちなみに -t を除くと下記のような感じになるようです。
Docker— docker run -it の -t を抜くとどうなるか ( tty 指定なしの interactive モード )

-p
port番号を指定することができる。
例:docker run –name test-nginx -d -p 8080:80 nginx

–rm
docker runコマンドを実行し、プロセスを止めるとdocker imageは残り続けます
この–rmをつけることで、プロセスを止めると同時にdocker imageも削除してくれます
下記のような感じで使われます。
docker run –name tmp-nginx –rm -d nginx

 

Dcoker Hub

Dcokerイメージがまとまっているサイトです。

Dockerhubへのpush

ログイン
docker login
ユーザー名とパスワードを入力する。

Docker Hubへpushする
docker push Dcoker ID / イメージ名:タグ

 

DockerのWorkFlowについて

①DcokerイメージをDocker Registry(Dcoker Hub)からpullしてくる
②DockerイメージをDcokerfileを使って、buildする
③Dcokerイメージからコンテナを作る(run)

 

Docker Machineについて

仮想マシン上に Docker Engine をインストールするツールです。

コマンド

docker-machine ls
docker machine一覧

docker-machine env ホストマシン名
指定したDockerホストを操作対象にするため環境変数一覧表示

eval $(docker-machine env ホスト仮想マシン名)
環境変数を設定し、ホストのdocker machineをativeにすることができる。

 

参考になった記事

【図解】Dockerの全体像を理解する -後編-
Docker初めての人向け説明メモ