時代在變 docker 要會:台北 docker 一日入門篇
TRANSCRIPT
![Page 1: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/1.jpg)
Philipz(鄭淳尹)2017-05-21
東吳大學數學系
台北 一日入門篇
![Page 2: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/2.jpg)
Philipz (鄭淳尹)
Docker.Taipei 共同發起人
歐萊禮《Docker 錦囊妙計》譯者
碁峰《Docker入門與實戰》、
《Kubernetes使用指南》審譯者
2014 COSCUP/iThome Summit 講者
2015 Microsoft Azure 開發者大會 講者
2016 COSCUP Docker 進階工作坊
2016 義守大學資工系 Docker 研習營
![Page 3: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/3.jpg)
Today Topics1. The differents between VMs and Container,
Container lifecycle.2. Docker ecosystem tools3. Linux CLI、Docker CLI 4. Using Docker Engine5. Docker Hub intoduction6. Docker image & Docker hub autobuild7. Deploy Docker image to Azure PaaS8. Docker Network CLI & Docker Compose CLI9. Using Docker Compose
![Page 4: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/4.jpg)
0. Docker now is called Moby
![Page 5: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/5.jpg)
There are a lot of Moby
Blog & IThome description
![Page 6: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/6.jpg)
![Page 7: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/7.jpg)
![Page 8: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/8.jpg)
1. Compare VM with Container
![Page 9: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/9.jpg)
Virtualization History● IBM zOS● Virtual Hardware - VMware, KVM, Xen, VirtualBox● Hardware-assisted virtualization● Paravirtualization● OS-level virtualization
a. OpenVZb. LXCc. Docker
● IaaS, PaaS, SaaS - Snapshot, Migration
![Page 10: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/10.jpg)
The Martix of Hell
![Page 11: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/11.jpg)
A Brief History of Containers
1979: Unix V7 2000: FreeBSD Jails
2005: Open VZ 2008: LXC
2013: LMCTFY 2013: Docker
2016: Windows Container
From: A Brief History of Containers: From 1970s chroot to Docker 2016
![Page 12: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/12.jpg)
![Page 13: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/13.jpg)
Containers vs. VMs
Blog description
![Page 14: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/14.jpg)
Containers vs. VMs
Blog description
![Page 15: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/15.jpg)
Containers are not VMs
Blog description
![Page 16: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/16.jpg)
Container PrincipleReal Container
One Container
One Customer
One Commodity
Software Container
One Container
One Process
![Page 18: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/18.jpg)
2. Docker ecosystem tools
![Page 19: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/19.jpg)
Docker Tools
![Page 20: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/20.jpg)
Still No Silver BulletContainer is one key element, not all.
DevOps pipeline process
Microservices, or other service stacks.
Infrastructure as Code
Business model
![Page 21: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/21.jpg)
Business model
Microservices
Infrastructureas Code
Container Design
DevOps
![Page 22: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/22.jpg)
*業務系統
微服務架構
Kubernetes
基礎架構即程式碼
容器式設計
自動化生產線
![Page 23: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/23.jpg)
Docker Datacenter
![Page 24: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/24.jpg)
3.1 Linux command-line
![Page 25: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/25.jpg)
Microsoft Azure
https://portal.azure.com/
![Page 26: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/26.jpg)
![Page 27: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/27.jpg)
![Page 28: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/28.jpg)
![Page 29: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/29.jpg)
![Page 30: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/30.jpg)
3.2 Docker command-line
![Page 31: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/31.jpg)
Install Docker
Install Docker on Ubuntuor
curl -sSL https://get.docker.com/ | shand
docker run hello-world
![Page 32: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/32.jpg)
Docker Management commands
![Page 33: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/33.jpg)
Docker image commands
![Page 34: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/34.jpg)
Docker container commands (1/2)
Ctrl-p Ctrl-q
![Page 35: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/35.jpg)
Docker container commands (2/2)
![Page 37: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/37.jpg)
4. Docker Engine Playground
![Page 38: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/38.jpg)
Azure Firewalldocker run -d -p 80:80 nginx
docker run -ti --rm -p 80:80 nginxdocker run -ti --rm -p 80:80 nginx bash
![Page 39: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/39.jpg)
Azure DNS Setting
![Page 40: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/40.jpg)
5. Docker Hub introduction
![Page 41: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/41.jpg)
Docker Hub = App Store● Public Docker Registry● One free private repo. ● Auto-build & Webhook● Security Scanning is not free.●
![Page 42: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/42.jpg)
GitHub & Docker Hub
![Page 43: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/43.jpg)
Vulnerability Analysis
CoreOS Clair
Anchore
![Page 44: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/44.jpg)
![Page 45: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/45.jpg)
6.1 Docker image & Dockerfile
![Page 46: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/46.jpg)
Docker Layers
![Page 47: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/47.jpg)
Create Docker image1. Docker commit2. Dockerfile - docker build3. Docker Hub auto-build4. FROM scratch5. Based on others, ubuntu, alpine...Example:https://github.com/docker/labs/tree/master/beginner/static-sitedocker save busybox > busybox.tardocker load < busybox.tar
![Page 48: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/48.jpg)
Dockerfile ReferenceSame folder, docker build .docker build -f /other/folder/file .Add tag, docker build -t TAG_NAME .Sample:
FROM debian:jessieMAINTAINER docker "[email protected]"RUN apt-get update && apt-get install -y nginxCMD ["nginx", "-g", "daemon off;"]
Healthcheck from 1.12
![Page 49: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/49.jpg)
Dockerfile Practice1. Must be “Dockerfile”.2. Use a .dockerignore file, like .gitignore.3. Minimize the number of layers4. Sort multi-line arguments5. ADD or COPY, in detail6. CMD or ENTRYPOINT7. ONBUILD8. EXPOSE and USER9. WORKDIR and ENV
![Page 50: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/50.jpg)
Use Scenario
Commit
Push
Pull
Deploy
![Page 51: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/51.jpg)
6.2 Docker Hub Auto-build
![Page 52: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/52.jpg)
DockerfileSample:
FROM debian:jessieMAINTAINER docker "[email protected]"RUN apt-get update && apt-get install -y nginxCMD ["nginx", "-g", "daemon off;"]
![Page 53: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/53.jpg)
Git Workflow1. git init or init on GitHub.2. git add Dockerfile3. git commit -m “First init”4. git remote add origin
https://github.com/YOURNAME/docker_build.git
5. git push origin master
![Page 54: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/54.jpg)
Create Auto-build Repo.
![Page 55: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/55.jpg)
Build Settings
docker pull YOURNAME/IMAGENAME
![Page 56: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/56.jpg)
7. Deploy Docker image to Azure PaaS
![Page 57: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/57.jpg)
Azure Web App on Linux
![Page 58: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/58.jpg)
Use Docker image for Web AP
![Page 59: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/59.jpg)
Azure PaaS Price Models
![Page 60: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/60.jpg)
8.1 Docker Network command-line
![Page 61: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/61.jpg)
TCP/IP Foundationwww.google.com, www is hostname, google.com is domain name.Localhost: 127.0.0.1TCP/UDP Port: 0-65535 = 2^16,
but 0 is a reserved port.Private IP:
10.0.0.0/8172.16.0.0/12 ~172.31.0.0/12192.168.0.0/16
![Page 62: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/62.jpg)
Network and connectivity commands
https://docs.docker.com/engine/userguide/networking/
![Page 63: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/63.jpg)
Docker Built-In Network Drivers
● Bridge● Overlay● MACVLAN● Host ● NoneNo more “link”, just use network.Docker Reference Architecture: Designing Scalable, Portable Docker Container Networks
Docker Plug-In Network Drivers● weave● calicoDocker Plug-In IPAM Drivers● infoblox
![Page 64: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/64.jpg)
Exercise 1$ docker network ls
$ ifconfig
$ docker run -ti --rm busybox sh
cat /etc/hosts, ifconfig
$ docker network inspect bridge
$ docker run -itd --name=container1 busybox$ docker run -itd --name=container2 busybox$ docker exec -ti container2 sh
ping -w3 172.17.0.2, ping container1
![Page 65: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/65.jpg)
Exercise 2$ docker network create vlan_1
$ docker network inspect vlan_1
$ ifconfig | more
$ docker run --network=vlan_1 -itd --name=container3 busybox
$ docker network inspect vlan_1
$ docker run --network=vlan_1 -itd --name=container4 busybox
$ docker exec -ti container4 shping -w3 172.17.0.2, ping container1, ping container3
![Page 66: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/66.jpg)
Exercise 3$ docker network create wp_db
$ docker pull mysql:5.7
$ docker pull wordpress
$ docker run -d --name db --network=wp_db -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
$ docker run -d --name wp -p 80:80 --network=wp_db -e WORDPRESS_DB_HOST=db:3306 -e WORDPRESS_DB_PASSWORD=wordpress wordpress
![Page 67: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/67.jpg)
8.2 Docker Volume command-line
![Page 68: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/68.jpg)
Shared data volume commands
Manage data in containers
![Page 69: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/69.jpg)
Exercise$ docker volume create \
--name composewp_db_data$ docker pull mysql:5.7$ docker pull wordpress$ docker run -d --name db --network=wp_db
-e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress -v composewp_db_data:/var/lib/mysql mysql:5.7
$ docker run -d --name wp -p 80:80 --network=wp_db -e WORDPRESS_DB_HOST=db:3306 -e WORDPRESS_DB_PASSWORD=wordpress wordpress
![Page 70: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/70.jpg)
SDSSoftware Define StorageEMC: REX-RayAzure: File storageAWS: Elastic File System
![Page 71: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/71.jpg)
9.1 Docker Compose command-line
![Page 72: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/72.jpg)
Install Docker Composesudo curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o \/usr/local/bin/docker-compose
and
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
![Page 73: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/73.jpg)
Docker Compose commands (1/2)Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file config Validate and view the compose file create Create services down Stop and remove containers, networks, images, and volumes events Receive real time events from containers exec Execute a command in a running container help Get help on a command kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding
![Page 74: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/74.jpg)
Docker Compose commands (2/2)Commands: ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services unpause Unpause services up Create and start containers version Show the Docker-Compose version information
![Page 75: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/75.jpg)
Compose File ReferenceRun Multi-container at the same time.Must be docker-compose.ymlSame folder, docker-compose up -dDocker will build the Dockerfile of subfolders.Docker Network, Volume supports1.13 has supported Swarm mode.Quickstart: Compose and WordPressKompose = Kubernetes + Compose
![Page 76: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/76.jpg)
9.2 Using Docker Compose
![Page 77: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/77.jpg)
Compose File Sample (1/2)version: '2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
![Page 78: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/78.jpg)
Compose File Sample (1/2) wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
*** nslookup wordpress ***
![Page 79: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/79.jpg)
Microservices Java WorkerDocker Birthday #3 training
![Page 80: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/80.jpg)
Microservices .NET Worker
Docker Birthday #3 training
![Page 81: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/81.jpg)
Docker Compose & CI/CDGitHub, CircleCI, Docker Hub = GitLab
Testing level? Coding effort? Env. build-up effort?
![Page 82: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/82.jpg)
End to End TestsCI with Docker Compose is easy to implement.
From: Oreilly - Building Microservices
![Page 83: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/83.jpg)
GitLab-RunnerGitLab-Runner
Container Development Flow
GitLab-Runner
![Page 84: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/84.jpg)
Test Double Approach
![Page 85: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/85.jpg)
New Compose Test Approach
The Same
![Page 86: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/86.jpg)
![Page 87: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/87.jpg)
![Page 88: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/88.jpg)
![Page 89: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/89.jpg)
10. Docker & Qemu & Raspberry Pi Raspbian
![Page 90: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/90.jpg)
How to build a base imageCross-compiler1. Building ARM containers onx86 machine2. Qemu-static-Docker IoT CI/CD3. Using GPIO with Docker
RPi & Docker
![Page 92: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/92.jpg)
![Page 93: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/93.jpg)
11. Demo TensorFlow with Docker
![Page 94: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/94.jpg)
Docker + TensorFlow + GPU● Machine Learning, Deep Learning● TensorFlow Docker images● nvidia-docker, All-in-one DL image
Deep Learning
![Page 95: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/95.jpg)
Exercise & Self-learning1. Docker Basic - Katacoda by Philipz2. Docker Trainning3. Docker Free self-paced courses4. Docker Tutorials and LabsOnline Self-learningOffical Online LabScalable Microservices with Kubernetes - Udacity
![Page 96: 時代在變 Docker 要會:台北 Docker 一日入門篇](https://reader034.vdocuments.mx/reader034/viewer/2022050812/5a6502b47f8b9af3398b4d83/html5/thumbnails/96.jpg)
Hope You Love DockerSo long!