Docker基礎

Dockerの理解の9割方は、Linuxの理解が求められる。

公式ドキュメント

念の為、バージョンを確認。

docker -v

DockerHubにログイン

docker login

dockerを立ち上げるには、docker Desctopを起動、または以下のコマンドから。

◇起動コマンド

open -a Docker

◇終了コマンド

osascript -e 'quit app "Docker"'

■基本コマンド

◇docker run

イメージからコンテナを起動するコマンド

docker run hello-world

# 動作させるコマンドに名前がつけられるつけられる
docker run --name テストの名前

# 一度きり実行でpsに残らない場合のやり方
docker run --name テストの名前 --rm hello-world

# 「centOS8(最新版のセントOS)をmycentosという名前でrunしますよ。それはbashコマンド(ターミナルで普段使っているコマンドのこと)で動きますよ」って命令を指す
docker run -it --name mycentos centos:8 /bin/bash

◇イメージの取得

イメージを取得することが可能

docker pull 'image名:オプション'

# latestを指定すると、最新versionのイメージが取得されます。
docker pull ubuntu:latest

◇取得したイメージを確認

docker images

◇コンテナidを調べる

docker ps

# 「完全に」調べる
docker ps -a

◇停止

# 該当のコンテナをストップ(停止)しますという命令
docker stop イメージ名またはコンテナID

◇起動

# 「mycentos」をスタート(起動)しますという命令
docker start mycentos

◇再起動

docker restart イメージ名またはコンテナID

◇削除

# コンテナ削除
docker rm -f コンテナID

# イメージ削除
docker rmi イメージ名

# コンテナの強制削除
docker rm -f コンテナ名

# コンテナもイメージも全てまるッと削除
docker system prune -a

削除は必ず「停止」した後で。

コンテナ(実体)を削除してから、イメージ(設計図)を削除。

コンテナの起動を止める→コンテナを削除→イメージを削除

◇コマンドの実行

rubyとかpythonとか、利用中の言語のコマンドを利用するのに便利。

docker container exec webrick ruby -v

# 起動中のコンテナへ移動
docker exec -it コンテナ名 /bin/bash

#コンテナ内に入らず、コンテナのcentosのredhatのバージョンを調べる
docker exec mycentos cat /etc/redhat-release

参考URL:docker exec

■基本の動作手順

  1. イメージの作成
  2. イメージからコンテナを作成し、起動させる
  3. コンテナの停止
  4. コンテナの削除
  5. イメージの削除

※手順を間違えると、困難なバグが発生する時がある

ターミナルできちんと「exit」して稼働中のものは終わらせること。

無視して✖️印をクリックしてターミナルを終了させたら、コンテイナーが全て消えた。。。

■基礎チュートリアル

docker run --name repo alpine/git clone https://github.com/docker/getting-started.git
docker cp repo:/git/getting-started/ .
cd getting-started
docker build -t docker101tutorial .
docker run -d -p 80:80 --name docker-tutorial docker101tutorial

You must be signed in to Docker Hub to share your image.

docker run -d -p 80:80 docker/getting-started

>>1 文字のフラグを組み合わせて、完全なコマンドを短縮できます。例として、上記のコマンドは次のように記述できます。
docker run -dp 80:80 docker/getting-started

http://localhost/tutorial/

<参考URL>