Torihaji's Growth Diary

Little by little, no hurry.

Docker のコマンド をただ羅列した

はじめに

みなさん、こんにちは。torihaziです。

前回、Docker Desktopと Docker Hubに登録を済ませ

これからその良さを享受していこうかと思っております!!

今日はそのDocker のメインとなる コンテナを実際に作っていきたいと思います!!

目次

格言

Dockerを触る上での心得。

  1. Docker fileはDocker Imageを作るための設計図 !!
  2. Docker fileは テキストファイルである!!
  3. Docker Imageを使って コンテナを作る!!
  4. コンテナからDocker Imageを作ることもできる!!
  5. Docker Imageは Docker hub から持ってこれる!!

これを毎晩唱えて寝ましょう。

コマンド

docker login

dockerにログインします。 docker hub に登録した user 名とパスワードを入力してください。 Github認証等をしていたら自動でログインされます。

🐶: ~ docker login
Authenticating with existing credentials...
Login Succeeded

docker pull docker-image

Docker hubからDocker Imageをpull(引っ張る)する事ができます。 指定がなければ最新版(latest)を取得してきます。

🐶: ~ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
478afc919002: Pull complete
Digest: sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

What's Next?
  View a summary of image vulnerabilities and recommendations → docker scout quickview hello-world

docker images

自コンピュータにあるDocker Imageを調べる事ができます。

🐶: ~ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ee301c921b8a   8 months ago   9.14kB

docker run docker-image

もし指定のdocker imageがなければdocker hubからpullしてきてくれます。 docker imageからDockerコンテナを作成します。 その後そのコンテナで実行すべきプログラムが指定されていれば実行します。

🐶: ~ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

・・・・

docker ps [-a]

今稼働しているDockerコンテナを一覧表示する事ができます。

-a を付与すると全てのコンテナを一覧表示する事ができます。

🐶: ~ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
🐶: ~ docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     PORTS     NAMES
f3403418812e   hello-world   "/hello"   4 minutes ago   Exited (0) 4 minutes ago             cool_albattani

docker run -it ubuntu bash

docker run の応用版です。

ubuntuというOSをなければpullしてきて 対話モードで見やすい形で ubuntuのコンテナを作成し

そのubuntu上でbashを実行します。

🐶: ~ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
ce9ebea987c2: Pull complete
Digest: sha256:e6173d4dc55e76b87c4af8db8821b1feae4146dd47341e4d431118c7dd060a74
Status: Downloaded newer image for ubuntu:latest
root@79bab68a9342:/# 

docker restart docker-container

exit したdocker コンテナを再起動して状態を Upにする事ができます。

docker exec -it docker-container コマンド

exit 状態のコンテナを指定して実行してもエラーになるので注意してください。

先ほど起動したdocker コンテナ上で コマンドを実行する事ができます。

docker run とは異なり、docker コンテナ名を指定する必要があります。

exit と detachの違い

コンテナを動かしているプロセスを削除するか否かが違いです。

exitはコンテナから出る時、コンテナを動かしているプロセスを消します。

対してdetachはコンテナから出る時、コンテナを動かしているプロセスを消さずに出ます。

一般的には exitを使う事が多い。

docker attach docker-container名

detachで出たコンテナに対して再度コンテナに入る事ができます。

docker commit docker-container new_name

docker-containerを更新して新しいdocker-imageを作成する事ができます。

docker tag source_imagename new_imagename

元のDocker Image名を 新しいDocker Image名に変更する事ができます。

docker push docker-image名

指定したDocker リポジトリに対してDocker-Imageをpushする事ができます。

docker rmi docker-image名

指定したdocker-imageを削除する事ができます。

docker create docker-image名

Docker Imageから Docker container を作成する事ができます。

docker start docker-container名

指定したdocker container を 実行する事ができます。 コンテナ内のデフォルトで登録されているコマンドを実行させる事ができます

docker rm docker-container名

止まっているdocker-container を削除する事ができます。

docker stop docker-container名

稼働しているdocker-containerを停止させる事ができます。

docker system prune

停止しているdocker-container群を前削除する事ができます。

docker run --name 任意の名前 docker-image名

起動したコンテナを任意の名前で実行する事ができます。

docker run -d docker-image

指定したdocker-imageから起動したコンテナをバックグラウンドで動かす事ができます。

docker rn -rm docker-image

指定したdocker-imageから起動したコンテナを実行し、終了直後削除する事ができます。

終わりに

一通りやってみました。

後々見返してみて少しづつ事典のようにしていきたいと思います!