はじめに
みなさん、こんにちは。torihaziです。
前回、Docker Desktopと Docker Hubに登録を済ませ
これからその良さを享受していこうかと思っております!!
今日はそのDocker のメインとなる コンテナを実際に作っていきたいと思います!!
目次
- はじめに
- 格言
- コマンド
- docker login
- docker pull docker-image
- docker images
- docker run docker-image
- docker ps [-a]
- docker run -it ubuntu bash
- docker restart docker-container
- docker exec -it docker-container コマンド
- docker attach docker-container名
- docker commit docker-container new_name
- docker tag source_imagename new_imagename
- docker push docker-image名
- docker rmi docker-image名
- docker create docker-image名
- docker start docker-container名
- docker rm docker-container名
- docker stop docker-container名
- docker system prune
- docker run --name 任意の名前 docker-image名
- docker run -d docker-image
- docker rn -rm docker-image
- 終わりに
格言
Dockerを触る上での心得。
- Docker fileはDocker Imageを作るための設計図 !!
- Docker fileは テキストファイルである!!
- Docker Imageを使って コンテナを作る!!
- コンテナからDocker Imageを作ることもできる!!
- 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のコンテナを作成し
🐶: ~ 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から起動したコンテナを実行し、終了直後削除する事ができます。
終わりに
一通りやってみました。
後々見返してみて少しづつ事典のようにしていきたいと思います!