【Docker】基本をざっくりメモ
Dockerとは、、
サーバ環境をパッケージングできる仕組み。
osのバージョンから使用するライブラリ・ミドルウェアの構成等の実行環境をパッケージングすることで固定する。
そうしてDockerで作成された開発環境は配布しやすく、そのパッケージがあれば、環境を作ったり捨てたり(消したり)が簡単にできる。
アプリケーション起動・実行までの流れ
1.アプリケーションの環境を Dockerfile ファイルで定義する。このファイルは、どこでも再利用可能。
2.アプリケーションを構成する各サービスを docker-compose.yml ファイルで定義する。そうすることで、独立した環境を一斉に実行できるようにしている。
3.最後に、docker-compose up
を実行すると、Composeがアプリケーション全体を起動・実行する。
Dockerfileで行うこと
FROM ruby:2.5.1-stretch
ENV ENTRYKIT_VERSION 0.4.0
WORKDIR /path
RUN apt-get update
〜(後略)
- FROMで元にするOS(ベースイメージ)の指定
- ENVで環境変数の指定( の形式)
- WORKDIRでRUN等の命令実行時の作業場所の明示
- RUN apt-getで必要になるライブラリのインストール
などなど、、
docker-compose.ymlで行うこと
version: "3"
volumes:
mysql_8_0-data:
redis-data:
vendor_bundle_2_5_1:
vendor_assets_2_7:
node_modules:
services:
mysql:
image: mysql:8.0
environment:
networks:
- default
ports:
- '33306:3306'
redis:
image: redis:alpine
networks:
- default
app_name:
build:
context: .
dockerfile: Dockerfile.dev
depends_on:
- mysql
- redis
networks:
- default
command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails server -b 0.0.0.0
- versionでdocker-composeの使用バージョンの指定
- servicesでアプリケーションを動かす為の各要素(railsとmysqlとredisと…)を定義。更にそれぞれの設定をその下に記述。
などなど、、
docker-compose.ymlの考え方
上述したservicesに記載のある各要素もそれぞれコンテナであり、docker-compose upを行うことで、docker-compose.ymlの内容を元に別々に分かれているコンテナが一つの環境としてまとめられる。
実際のサーバ構築で例えるとすると、rails、mysql、redisがそれぞれ動くサーバを立てる、更にそれぞれがネットワークで繋げるという状況を記述しているイメージ。
参考
終わりに。
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございます。
Author And Source
この問題について(【Docker】基本をざっくりメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/waniwaninowani/items/a1dd275a25e8c51e0c2e著者帰属:元の著者の情報は、元の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 .