①Dockerを初めて導入して基本操作する (2020.4時点)
雑食系オンラインサロンにてDockerの重要性を理解しましたので、
このたび、ポートフォリオづくりの流れで実装していきます。
本稿は、
DockerHubアカウント取得 → DockerDesktop(mac)インストール → 操作の練習
という流れです。
自分と同じように、
何していいかわからないゼロスタートの方になるべくわかるようにしたいと思っています。
前提
macOS : Catalina 10.15.3
ruby : 2.5.1
Rails : 5.2.4.1
ターミナル使用
Docker version 19.03.8
では、はじめましょう!
1.Dockerをインストールする
・Docker for Macをインストールする
・DockerHubのアカウントを作ってログイン、DockerHubからimageをダウンロードします。
・DockerHubのURLはこちら
https://hub.docker.com/editions/community/docker-ce-desktop-mac
サインインしたら、「Get Docker」ボタンを押します。
ダウンロードを終えると以下の指示がありますので、Dockerをアプリフォルダに移します。
Dockerがインストール完了できたか、ターミナル上で docker version コマンドを実行します。
docker version
こんな感じになります。
2.Dockerコマンドでコンテナイメージを取得する
コンテナを作成する際、Dockerfileを作成しなくともコマンドだけでコンテナの起動が可能です。
Docker Hub上に存在する「Nginx(エンジンエックス)」 のコンテナイメージをローカルにPULLしてみます。
Nginx(エンジンエックス)は本番環境で使用するフリーWebアプリケーションサーバーです。
当方は、デプロイでよくお世話になっています。
・Docker Hub上で「Nginx」 を検索すると PULLコマンドが右の黒いボックスに出てきます。

コマンド「docker pull nginx」をターミナル上にコピペして実行してみます。
docker pull nginx
docker imagesコマンドを実行してイメージを取得できているか確認します。
docker images
3.取得したコンテナイメージを「 runコマンド 」で起動する
docker run -d -p[ホスト側ポート]:[コンテンナ側ポート][タグ名]
-d : バックグラウンドでコンテナ起動
-p : ポートの指定 ホスト側は localhostポート番号 となります
(railsでlocalhost:3000打ちますよね、ご存知の方は多いかと思います、それです)
タグ名 : nginx
任意で、タグ名の前に「 test 」というコンテナネームをつけてみました。
ホスト側のポート番号を8081 →localhost:8081
コンテンナ側ポート番号を80 にして
「runコマンド」 を実行してみます。
docker run -d -p 8081:80 --name test nginx
ブラウザで URLに 「localhost:8081」 と入力しますと表示されました。起動してるっぽいけど?

では、以下のコマンドでコンテナの状態を見てみます。
docker ps -a
or
docker container ls
真ん中あたり 「STATUS が Up」 になっていますので、起動しています。

4.起動しているコンテナを停止する
以下のコマンドでコンテナを停止させてみます。
docker stop [コンテナID]
or
docker container stop [コンテナ名]
今回は、コンテナ名で実行してみます。
docker container stop test
ぱっと見、よくわかりませんので、以下のコマンドで状態を確認します。
docker container ls
or
docker container ls -a
コマンド docker container ls -a を見ると、
STATUS が Exited(終了しました) なので、停止したようです。
ブラウザで localhost:8081 と入力しますと、こうなりました。
これでコンテナは停止していることがわかります。
5.停止したコンテナを削除する
今回は、もう必要ありませんのでコンテナを削除します。
docker rm [ コンテナID ] カッコは要りません
削除したいコンテナのIDを確認します。
docker container ls -a

削除したいコンテナのIDがわかったので、削除コマンドを実行します。
docker rm c6d60e5c8239
docker container ls -a
無事削除できたようです。
6.コンテナイメージを削除する
コンテナを削除できましたので、あとは残っているコンテナイメージまで削除します。
docker images を実行してコンテナイメージの状態を確認します。
docker images
イメージを削除するコマンドを実行します。
docker image rm [ image名 or imageID ] カッコは不要です
今回はImageIDを使ってみます。
docker image rm ed21b7a8aee9
実行します。
続いて、削除できたか確認します。
docker images
無事、イメージを削除できました。
7.まとめ
1. DockerHub からimage(コンテナイメージ)を取得する
・image取得コマンド: docker pull [image名]
・オブジェクト指向で例えると、image は クラス (例:"くるま"という概念の設計図)
・コンテナの素になるもの
2. docker run コマンドを実行して、image(コンテナイメージ)からコンテナ(contaier)ができる
・オブジェクト指向で例えると、container は インスタンス (例:"くるま"概念から作った"トヨタ車"の設計図)
・コンテナはイメージから作られる実際の動作環境
・原則1コンテナ1アプリ
・コンテナでは環境変数やポートなどさまざまな設定ができるようになる
3.もし、いらなくなったら、コンテナを停止して削除 → コンテナの素のイメージも削除する
・コンテナの停止コマンド: docker container stop [コンテナID or コンテナ名]
・コンテナの削除コマンド: docker rm [コンテナID]
・イメージの削除コマンド: docker rmi [イメージID]
8.最後に
当方、
実務未経験+初学者+テッ○キャンプ卒業+転職活動中であります。
初めての投稿です。
この先のdocker実装を進めつつ、わかりやすい記事を寄稿していきたいと考えています。
・参考にさせていただいた記事です。
**DockerをMacにインストールする(更新: 2019/7/13)
本当にありがとうございました。
ローカル・Dockerで開発環境を整えるまでの続編
②Dockerを初めて導入してRails sする (2020.4時点)
③Docker MYSQLにデモデータ(seed_fu)を投入する!(2020.4時点)
④ローカルDocker環境でデータ永続化、entrypointでseed_fuをやり直しする(2020.4.時点)
⑤AWS仮想サーバを利用する、AWSアカウント作成 + EC2インスタンス作成(2020.4時点)
こちらも続けて見ていただけると流れがわかると思います。
Author And Source
この問題について(①Dockerを初めて導入して基本操作する (2020.4時点)), 我々は、より多くの情報をここで見つけました https://qiita.com/SakagamiKeisuke/items/4455631886b1c15a3b69著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .