夢のかけら

Goエンジニアの技術ブログ

Dockerに入門する①〜とりあえず触ってみる〜

はじめに

Dockerの勉強始めました。あとブログも始めました。2020年はQiitaしか書いていなかったけど、これからはブログに書こうと思います。

Dockerとは

Dockerはインフラをコード化するための技術である。

  • 開発者間の環境の差異を吸収してくれる
  • 環境構築が簡単にできる

などのメリットがある。

イメージとは

オブジェクト指向で言うと、イメージはクラスであり、コンテナがインスタンスである。イメージからコンテナを作ることをビルドすると言う。 イメージはDocker Hubでダウンロードもできるし自作することもできる。 f:id:lampler:20201210221007p:plain

イメージはクラスと似ているので継承することができる。

基本的なコマンド

docker run

docker rundocker pull(イメージの取得)、docker create(コンテナの作成)、docker start(コンテナの起動)の三つのコマンドをまとめたものである。

docker images

docker imagesでローカル上にダウンロード済みのイメージ一覧を表示できる。

docker tag

docker tag ローカルにあるイメージ名 任意のイメージ名で新しい名前をつけてイメージを複製できる。任意のイメージ名:タグ名とすることでタグ名をつけることもできる。タグ名とは主にバージョンを表すものである。

latestタグに注意

latestはデフォルトのタグ名であり、最新版という意味ではない。

docker inspect

docker inspect イメージ名orイメージIDでイメージの詳細情報を表示することができる。

docker rmi

docker rmi イメージ名orイメージIDでローカルのイメージを削除することができる。-fが強制削除オプションである。

docker build

docker build -t 任意の名前 .(ビルドコンテキスト)でDockerfileからイメージをビルドできる。-t タグ名でイメージに名前をつけることができる。

ビルドコンテキストとは

ビルドコンテキストとはイメージを作成するする際にアクセスできるディレクトリやファイルの範囲のこと。今回の.はカーレントディレクトリを指す。ビルドコンテキストがカーレントディレクトリなので、カーレントディレクトリのDockerfileが参照される。

キャッシュされることに注意

Dockerfileの内容に追記してもう一度docker buildを実行した場合、追記された部分以外はキャッシュが使われ、新たに実行されることはない。 DockerfileにRUN apt-get updateのように毎回実行したい命令があるときは--no-chacheオプションを使うと良い。

docker ps

docker psでコンテナの稼働状況を確認できる。-aオプションを付与すると停止したコンテナも表示される。

docker start

docker start (コンテナID or NAME)でコンテナを起動できる。

docker stop

docker stop (コンテナID or NAME)でコンテナを停止できる。

おわりに

長くなりそうなので、複数に分けて書こうと思う。まだ全然よく分からない😅 頑張ります🐳🐳🐳