Docker nginx django mysql - ntuf/Tips GitHub Wiki
(Project)
- docker
- docker-compose.yml
- nginx
- conf
- (Project)_nginx.conf
- conf
- web
- Dockerfile
- requirements.txt
■Dockerfile Dockerで作成するコンテナイメージを管理するためのファイル この中でrequirementsを読んでいる。
-- FROM python:3.6 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/
■docker-compose.yml Docker Composeの設定・構成を定義するファイル
※Docker Composeは、 複数のコンテナで構成されるアプリケーションについて、 Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツール
-- version: '3.4'
volumes: lx_questionaire.db.volume: name: lx_questionaire.db.volume
services: nginx: image: nginx:1.13 container_name: lx_questionaire.nginx ports: - "8000:8000" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params - ./static:/static depends_on: - web
db: image: mysql:5.7 container_name: lx_questionaire.db ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: lx_questionairepass TZ: 'Asia/Tokyo' volumes: - lx_questionaire.db.volume:/var/lib/mysql - ./sql:/docker-entrypoint-initdb.d
web: build: ./web container_name: lx_questionaire.web command: uwsgi --socket :8001 --module lx_questionaire.wsgi volumes: - ./src:/code - ./static:/static expose: - "8001" depends_on: - db
■コマンド docker run →イメージを起動するためのコマンド
docker-compose up -d →コンテナをバックグラウンドで起動し、そのまま実行し続ける -dオプションをつけないとフォアグラウンドで動くらしい。
docker-compose stop →コンテナを停止する
docker ps →コンテナが稼働しているかを確認できる。
--
どうやってDockerのDBアクセスしたらいいんだろ? localhostでアクセスできない。 → IP分かっている必要はありません。 docker-compose.yml に記載したコンテナ名でアクセス出来ます。 /etc/hosts に記載されている、ということは、 そもそもそのホスト名でアクセス出来る ということ。 なので、下記の様に /etc/hosts をわざわざ見る必要はありません。
そもそもDockerでやることのメリットって何だ? →環境全体をイメージで扱えるので、 環境を作ったり・消したり、移したりが容易 ローカルでdockerでやるメリットってあるのか? →特にはない dockerイメージをそのままAWSに上げて動かすこととかもできるはず。