はじめに
[対象読者]
Dockerをやって見たいけどよくわからないという人
今回は、Dockerの勉強をしてみました。
以前、理論から入って挫折したんですが手を動かしてみたらめちゃくちゃわかりやすかったですww
Dockerやりたいけどわからない人はとりあえずやってみることをおすすめします。
内容的にはまだまだ途中なので随時更新していきます。
この記事は以下の記事をやりながら自分なりに勉強になった点をまとめて見た記事です。
めちゃくちゃわかりやすいのでぜひやって見てください!
macだとコマンドがちょっと違うので引っかかるかもしれませんが質問していただければわかる範囲で答えます!
Docker入門 (第一回) ~Dockerとは何か、何が良いのか~
Docker入門(第二回)~Dockerセットアップ、コンテナ起動~
Docker入門(第三回)~各種dockerコマンドとDockerイメージ作成について~
Docker
Dockerイメージの取得、Dockerイメージ一覧
docker pull <Dockerイメージ名>
docker images
コンテナ起動、コンテナ一覧確認
# docker run -it -d -p <ホスト側ポート>:<コンテナ側ポート> -v <ホスト側ディレクトリ>:<コンテナ側ディレクトリ> --name <コンテナ名> <Dockerイメージ名>
# docker ps -a
コンテナへのログイン
docker exec -it <コンテナ名> bash
ファイルコピー
(ホスト→コンテナ内)
docker cp <ホスト側のファイル> <コンテナ名>:<コンテナ内のコピー先ディレクトリ>
(コンテナ内→ホスト)
docker cp <コンテナ名>:<コンテナ内のコピー元ファイル> <ホスト側のコピー先ディレクトリ>
コンテナからDockerイメージ作成
docker commit <コンテナ名> <作成するDockerイメージ名>
コンテナ起動と停止
docker start <コンテナ名>
docker stop <コンテナ名>
コンテナ削除
docker rm (-f) <コンテナ名>
※「-f」オプションを付けると、コンテナ起動中でも強制的に削除します。
Dockerfile
-
FROM
ベースとするDockerイメージを指定 -
RUN
OSのコマンドを実行する際に使用する -
ADD
tar.gzファイルのコンテナへのコピーと、tarの展開を行います -
CMD
コンテナ起動時に実行するコマンドを記述
Dockerfileを書く際の注意点
- Dockerfileの各コマンドは、毎回コンテナを起動して実行している
- キャッシュを意識する(実行済みのコマンドはキャッシュが使用される)
- Dockerfileはコマンドごとにレイヤーが作成されるのでコマンドはまとめて実行する
コンテナ間通信
コンテナ間の通信には二つある
①Dockerネットワークを作成してコンテナ名で接続できるようにする
②「--link」オプションを使用する(レガシーらしい)
Dockerネットワーク
ネットワーク詳細を確認する
docker network inspect <ネットワーク名>
ネットワーク一覧を確認
docker network ls
ネットワークを指定してコンテナを起動する
docker run --name mysql --network wordpress-network -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
最後に
最後まで読んでいただきありがとうございます!
編集リクエストなどあればどんどんお願いします!
他の初学者の学習の助けになる情報などもあればコメントでいただければ嬉しいです!