LoginSignup
1
0

More than 3 years have passed since last update.

ざっくりDocker

Last updated at Posted at 2020-03-15

Dockerをしっかり無理解状態でdocker-composeKubernetesを学ぼうとしていて結果的にえらい回り道をしている気がしたので、まずはDockerについてざっくりでも理解するために書き残す。

※ちなみにdocker-composeKubernetesECSなどは復数のDockerを扱うための技術とのことで、Dockerのメリットを享受できていない内に学ぼうとしても頭に何も残らなかった。。。

Dockerに関する記事はたくさんあるので、とりあえず、イメージとコンテナの二つを理解したら何となく使えるようになった。

※Dockerfileの書き方はそのうち追記します

イメージ

コンテナの元。コンテナを使うにはまずイメージがなければいけない。
イメージはダウンロードするか、人からもらうか、自分で作るかで手に入れたりできる。
シンプルなイメージなら公式からダウンロードで取得できるが、会社と同じ環境を自宅で再現したいとかであれば自分で作るか誰かが作ったのをもらうしかない。

コンテナ

イメージから作成した別の環境

シンプルに自分のPC環境に別のPC環境を作る技術と理解している。
このおかげでぶっ壊しても平気なのでとにかく色々試せるし、人と共有も簡単にできるんだな〜ってこと。

Dockerfile

Dockerfileはイメージを作成するためのファイル。
公式イメージから自分で手を加えて、自分専用のイメージを作成したりできる。

コマンド

イメージ関連コマンド

イメージを検索。使いたいOSや言語などを検索すれば大抵の公式イメージが存在する
docker search イメージ名
イメージを取得
docker pull イメージ名
DockerFileからイメージを作成する
# イメージ作成基本コマンド。この場合イメージ名はランダムにつけられる
docker build (DockerFileのある)パス

# イメージ名を独自につける
docker build -t 名付けたいイメージ名 (DockerFileのある)パス

# イメージ名とタグを独自につける
docker build -t 名付けたいイメージ名:タグ (DockerFileのある)パス

# 例
docker build -t sample:1 .
・
・
・
# 省略
Successfully built 1234abcdefgh ←作成されたイメージID
Successfully tagged sample:1  ←イメージ名とタグがつく。オプションつけなければこの表記されない
保有するイメージ一覧を確認する
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sample              1                   1234abcdefgh        8 minutes ago       1.97GB

# REPOSITORYがイメージ名
dockerイメージの作成履歴を確認
docker history イメージ名
イメージを削除する
# 対象を指定する際はイメージ名、イメージ名:タグ、イメージIDのどれかで指定する
docker rmi イメージ名
docker rmi イメージ名:タグ
docker rmi イメージID

コンテナ関連コマンド

コンテナの中でbashを利用して起動
docker run -it イメージ名 bash

# 作成するコンテナに名前をつける場合
docker run --name 名付けたいコンテナ名 -it イメージ名 bash

-iはコンテナの標準入力を有効化
-tはttyを有効化

※ ちなみにイメージを未取得でdocker run イメージ名とコマンドを叩くと自動的にpullしてからrun(起動)してくれる

コンテナの状態確認
# 起動コンテナのみ表示
docker ps
# 停止コンテナも含めて表示
docker ps -a
# 停止コンテナも含めてコンテナIDのみ表示
docker ps -aq
コンテナを起動
docker start コンテナ名
コンテナを停止
docker stop コンテナ名
バックグランドで起動しているコンテナに入る
docker attach コンテナ名
dockerコンテナを削除
docker rm コンテナ名 or コンテナID
dockerコンテナの標準出力のログを確認
docker logs コンテナ名 or コンテナID

ネットワーク関連コマンド

dockerネットワークを表示
docker network ls
dockerネットワークの詳細を確認
docker network inspect ネットワーク名 or ネットワークID
dockerネットワークを作成
docker network create --attachable -d ネットワーク名 --subnet=172.17.0.0/16 作成ネットワーク名

Docker for Mac

Macでvolumeに保存されているVMに入る
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

参考リンク

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