2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerの備忘録

Last updated at Posted at 2020-08-30

Dockerデーモン

コンテナを管理する永続的なプロセスでありDocker デーモンはユーザーからのDockerコマンドによる命令を実行することでコンテナの起動や再起動、停止などの管理をしている。

Docker Hub

Dockerイメージのレジストリサービス。
Dockerイメージの公開、検索、ダウンロードすることができる。

Dockerイメージ

コンテナ実行に必要なファイルをまとめたファイルシステム。
AUSFなどの特殊なファイルシステムが使用されている。
イメージ上のデータはレイヤで構成され読み取り専用。

イメージの一覧表示

% docker images

新しいイメージを作るコマンド

## % docker tag 元のイメージ名 新しいイメージ名
% docker tag docker/whalesay my_whalesay

## % docker tag 元のイメージ名 新しいイメージ名:タグ
% docker tag docker/whalesay my_whalesay:num1

下の場合は「num1」と言うタグ名がつけられた「my_whalesay」というイメージが作られる。

イメージの詳細情報を表示するコマンド

## % docker inspect 対象のイメージ若しくはイメージID
% docker inspect my_whalesay

イメージを削除するコマンド

## % docker rmi 対象のイメージ若しくはイメージID
% docker rmi docker/whalesay

イメージを強制削除するコマンド

## docker rmi -f 対象のイメージ若しくはイメージID
% docker rmi -f docker/whalesay

イメージを取得するコマンド

## % docker pull 取得したいイメージ
% docker pull docker/whalesay

latestが新しいイメージでは無い可能性もあるので詳しくは公式参照。

Dockerfile

イメージの定義ファイル。Dockerfileからイメージをビルドすることをイメージビルドという。

## FROMはイメージを作る際、元のイメージを指定する今回はdocker/whalesay:latest
FROM docker/whalesay:latest
## RUMはイメージビルドの際にコマンドを指定する
RUN apt-get -y update && apt-get install -y fortunes
## CMDはコンテナが作成された後で実行するコマンドを指定する命令
CMD /usr/games/fortune | cowsay

Dockerfileからイメージをビルドするコマンド

## % docker build -t イメージ名 .
% docker build -t docker-whale .

-tはビルドしたイメージに名前をつける今回はdocker-whale。
「.」はビルドコンテキストの設定でイメージを作成する際にアクセスできるディレクトリや、ファイルの範囲を示すもの。今回はカレントディレクトリを示す.(ピリオド)。

## % docker build --no-cache -t イメージ名 .
% docker build --no-cache -t docker-whale .

上記は再度Dockerfileでイメージビルドする際、キャッシュが適用され更新されず、
新しいパッケージがインストールされないのを防ぐコマンド。
キャッシュが使わずに更新することができる。

DockerHubにログインする

% docker login
Username DockerHubのユーザー名
Password: DockerHubのパスワード

成功したら「Login Succeeded」と表示される。

DockerHubにおけるタグ付けルール

## % docker tag 元のイメージ名 リポジトリ名:タグ名
% docker tag docker-whale user/docker-whale:num1

DockerHubの「user/docker-whale」というリポジトリにpushするのでこのような記述になる。
タグ名を指定しない場合はlatestタグになる。
リポジトリ名を間違えるとpushできないので注意!

DockerHubにイメージをpushする

## % docker push リポジトリ名:タグ名
% docker push user/docker-whale:num1

ここでエラーが出た場合、再度リポジトリ名が合っているか確認する。
DockerHubのリポジトリにイメージがpushできていることを確認する。

DockerHubからイメージをpullする

## % docker pull イメージ名:タグ名
% docker pull user/docker-whale:num1

docker imagesコマンドでイメージがpullできていることを確認する。

nginxのコンテナを立ち上げるコマンド

## % docker run --name コンテナ名 -d -p ホスト側ポート番号:コンテナのポート番号 イメージ名
% docker run --name some-nginx -d -p 8080:80 some-content-nginx

--neme は起動するコンテナに名前をつけるオプション。
-d はデタッチモードでコンテナの実行をバックグラウンドで行うもの。入力が無い場合、実行した画面で他の操作ができなくなるため、入力することを推奨。
-p はコンテナのポートをコンテナ外に設定するオプション。ここでは8080が外部に公開するポート番号。
正常に実行された場合、http://localhost:8080/ でnginxが起動していることが確認できる。

dockerコンテナの確認

## 起動中のコンテナの表示
% docker ps
## 起動中、停止しているコンテナの表示
% docker ps -a

dockerコンテナをスタートさせる

## docker start コンテナ名若しくはコンテナID
% docker start static-site

コンテナのステータスがrunningに変わる。

dockerコンテナを一時停止させる

## docker pause コンテナ名若しくはコンテナID
% docker pause static-site

コンテナのステータスがpausedに変わる。

dockerコンテナの一時停止を解除させる

## docker unpause コンテナ名若しくはコンテナID
% docker unpause static-site

コンテナのステータスがrunningに変わる。

dockerコンテナを再起動させる

## docker restart コンテナ名若しくはコンテナID
% docker restart static-site

コンテナのステータスがrestartingを経て、runningになる。

dockerコンテナを削除する

## docker rm コンテナ名若しくはコンテナID
% docker rm static-site
## 

コンテナを停止させないと削除できないので注意!

dockerコンテナを強制削除する

## docker rm -f コンテナ名若しくはコンテナID
% docker rm -f static-site

コンテナを削除できない時に使用。

dockerコンテナのステータス

docker psコマンドや、docker inspectコマンドでコンテナのステータスを確認することができる。

created ・・・docker createでコンテナが作られ、start前の状態。docker startでrunningに変わる。
running ・・・コンテナが起動している状態。docker pauseコマンドでpaused、docker stopコマンドでexited、docker restartコマンドでrestartingを経て、runningになる。
paused ・・・一時停止状態で起動中のコンテナに接続したり、リクエストを投げても応答しない。docker unpauseコマンドでrunning状態に戻る。
restarting ・・・コンテナの再起動中で、すぐに再起動するためあまり見ることができない。再起動が終了したらrunningになる。
exited ・・・コンテナが終了し、残り続けている状態。基本的にはここからdocker rmコマンドでコンテナを削除することができる。
dead ・・・コンテナが正常に終了されずに残った場合に表示され。こうなった場合は削除するしかない。

コンテナからイメージを作る

## docker commit コンテナ名若しくはコンテナID イメージ名:タグ名
% docker commit static-site static-site:ver1

コンテナの状態をイメージとして保存できる。しかしコンテナ内で行われた作業は明確な記録として残らないので、通常はDockerfileに記載して履歴を残すようにする。

イメージの履歴を確認する

## docker history イメージ名若しくはイメージID
% docker history docker-whale

docker-whaleに関する履歴を確認できる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?