SlideShare a Scribd company logo
Docker
Koichi Nagaoka
(@kkoudev)
12
iOS/
Android
Docker
Docker
Docker OS
macOS Linux
Docker
Docker
Docker
Docker 

Docker 

1.
Web
1.
( )
2.
( )
3.
( )
4.
( )
1.
2. 1
1
3.
(ALB RDS ElastiCache)
Docker
2.
Docker
Dockerを利用したローカル環境から本番環境までの構築設計
/
■ 

AWS Application Load Balancer (ALB) 



■ 

AWS ElastiCache (Redis) 



■ 

AWS RDS (MySQL) 



■web01/02 (EC2 )

Nginx (HTTP )

Web (Django Python3 )



■batch01/02 (EC2 )

Python3 

(Celery beat)

RabbitMQ (Celery )
2-1.
Web
OS
Docker
1. ALB HAProxy


2. HAProxy Redis MySQL Nginx RabbitMQ Python3
Homebrew 

3. 

4. Web
venv 

5. Web
pip
Dockerを利用したローカル環境から本番環境までの構築設計
Docker
1. Homebrew


2. OS


3. 1 2


1
(
)
Docker
1. ALB HAProxy 

2. HAProxy Redis MySQL Nginx RabbitMQ Python
( ) docker-compose (docker-
compose.yml) 

3. 

4.
VOLUME 

5. Web Docker
Python pip


6. docker-compose docker-compose.yml
Docker
1. Homebrew
OK Docker docker-compose


2. OS Docker OS


3. 1 2


4. docker-compose.yml
docker-compose up -d
Docker
Docker
2-2.
Dockerを利用したローカル環境から本番環境までの構築設計
Docker /
1. ALB ElastiCache (Redis) RDS (MySQL) 

2. Nginx RabbitMQ Python Ansible


3. / 

4. Web
(Capistrano Ansistrano )

5. Web
venv 

6. Web
pip
Dockerを利用したローカル環境から本番環境までの構築設計
Docker /
1.
Ansible
(
)
Docker /
1. ALB ElastiCache (Redis) RDS (MySQL)


2. Nginx RabbitMQ Python
( ) docker-
compose (docker-compose.yml) 

3. 

4. docker-compose docker-compose.yml
Docker /
1. docker-compose
OK

2.
venv 

3. 2
(DB
)

4. docker-compose.yml
docker-compose up -d
Docker
docker-compose
3.
Docker
3-1.
docker-
compose.yml
Web
Docker
Docker
docker login
Web
gitignore
docker-compose
sources clone
3-2.
Python
pip
requirements.txt
Dockerを利用したローカル環境から本番環境までの構築設計
1
1. Python Docker
2. 1
VOLUME 

(pip --user
PYTHONUSERBASE
)
3. 2 PYTHONUSERBASE
bin PATH
docker-compose ( )
docker-compose ( )
PYTHONUSERBASE PATH
env_file
( )
# 

docker-compose run --rm web pip install --user -r
requirements.txt
# 

docker-compose -f docker-compose.local.yml up -d
Dockerを利用したローカル環境から本番環境までの構築設計
1. Python Docker
2. Docker
3. 2
bin PATH
docker-compose ( / )
docker-compose ( / )
Dockerfile
Dockerfile
Python
(
)
ADD
/var/opt/example
pip (
.local ) ADD
ADD
( )
# ( )

docker-compose -f docker-compose.development.yml pull
docker-compose -f docker-compose.development.yml run --rm web python manage.py collectstatic --
noinput

docker-compose -f docker-compose.development.yml up -d
# ( Web)

docker-compose -f docker-compose.production_web.yml pull

docker-compose -f docker-compose.production_web.yml run --rm web python manage.py collectstatic --
noinput
docker-compose -f docker-compose.production_web.yml up -d

# ( Batch)

docker-compose -f docker-compose.production_batch.yml pull
docker-compose -f docker-compose.production_batch.yml up -d
Jenkins CircleCI CI docker
build
docker push
Docker pull
Docker
docker-compose.yml


1 Docker
-01.
Docker
Docker
-01.
Docker
Docker A
Docker 30 

Docker
2GB


2GB
Docker A
Vagrant Docker


1


Docker 30
Docker A
1.
Docker 

2.
FROM
Dockerfile 

-02.
Docker A
Docker
RDS S3 

DB AWS
IAM (
)
Docker A
1. Docker DB
Docker


2.
gettext envsubst
3. direnv
Docker
Thanks!

More Related Content

Dockerを利用したローカル環境から本番環境までの構築設計