Windows環境




$ docker version
$ docker-compose versionそれぞれ以下のように表示されればDockerは正常に起動されています。

Linux環境
古いバージョンのアンインストール
sudo apt-get remove docker docker-engine docker.io containerd runcパッケージアップデート
sudo apt-get updateHTTPS経由でリポジトリを使用できるようにパッケージをインストール
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-commonDocker公式のGPGキーの追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88リポジトリを設定
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"Dockerのインストール
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ apt-cache madison docker-ce
$ sudo apt-get install docker-ce=5:18.09.5~3-0~ubuntu-bionic docker-ce-cli=5:18.09.5~3-0~ubuntu-bionic containerd.ioDockerが正常にインストールしたか確認
$ sudo docker run hello-worldDockerを自動起動させる
sudo systemctl enable dockerDocker Composeインストール
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose実行権限適用
sudo chmod +x /usr/local/bin/docker-composeインストール確認
docker-compose --versionDjangoをDocker上で動作
フォルダおよびファイルの作成
$ mkdir sql
$ touch Dockerfile docker-compose.yml command.sh requirements.txt sql/init.sqlFROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/
EXPOSE 8000
COPY ./command.sh /command.sh
CMD ["/command.sh"]version: '3'
services:
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
working_dir: /code
ports:
- '8000:8000'
volumes:
- .:/code
depends_on:
- db
db:
image: mysql:5.6
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: django_docker
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- web-db-data:/var/lib/mysql
- ./sql:/docker-entrypoint-initdb.d
ports:
- '3306:3306'
volumes:
web-db-data:set -e
cd /code
wait_count=0
while ! python3 manage.py shell -c "
from django.db import connection
with connection.cursor() as cursor:
cursor.execute('select 1')
cursor.fetchall()
" 2> /dev/null
do
echo Wait until DB is ready... $((wait_count += 1))
sleep 5
done
python3 manage.py migrate --noinput
python3 manage.py collectstatic --noinputDjango==2.2.10
mysqlclient==1.4.6GRANT ALL PRIVILEGES ON test_django_docker TO 'user'@'%';
FLUSH PRIVILEGES;データベース起動
$ docker-compose up dbプロジェクト作成
$ docker-compose build web
$ docker-compose run web django-admin startproject mysite .MySQLに変更



