(แทบจะไม่) รู้จักDockerใน 60 วินาที
Sep 9, 2018 · 2 min read
#5ปีแล้วนะไอxัx #Docker was first released in march 2013

ห่อ source codeพร้อมกับ environmentsที่จำเป็น เช่น libs, framework, db ,os เพื่อ ขนย้ายสะดวก ติดตั้งง่าย รวดเร็ว
คล้ายๆ Virtual Machine

เอาไปใช้ทำอะไรกัน

Docker file ตัวอย่าง
1.
FROM ubuntu:12.04
MAINTAINER Kimbro Staken version: 0.1
ADD ./mysql-setup.sh /tmp/mysql-setup.sh
RUN /bin/sh /tmp/mysql-setup.sh
CMD ["/usr/sbin/mysqld"]2
FROM node:alpine
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD node index.js
EXPOSE 30003
FROM ubuntu
MAINTAINER John OldmanRUN apt-get install -y python-software-properties python python-setuptools ruby rubygems
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejsADD . /var/www
RUN cd /var/www ; npm install
CMD ["/usr/local/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]

build คือ โหลดโปรแกรมมาลง รันคำสั่งshell ตามสเปคที่เขียนใน dockerfile
$ docker build -t node-web-app .run คือ เอาimageมาผูกกับเครื่องhost ตั้งค่าต่างๆเช่น network, storage, ตัวแปรenv
$ docker run -p 49160:8080 -d node-web-appDocker registry
https://hub.docker.com/explore/ คลังเก็บdocker image คล้ายๆ github npm
Docker เป็นหมู่คณะ ก้ใช้ docker compose
ตัวอย่างไฟด์ docker-compose นี้มี 2 service คือ
version: '3'
services:
product-service:
build: ./product
volumes:
- ./product:/usr/src/app
ports:
- 5001:80
website:
image: php:apache
volumes:
- ./website:/var/www/html
ports:
- 5000:80
depends_on:
- product-serviceเพิ่มเติม
- ลงมือทำความเข้าใจ https://github.com/docker/labs/tree/master/beginner/
- ติดตั้ง docker engine วิธีตามลิ้งค์นี้ macOS / Ubuntu
- ตัวอย่าง cli สั่งงาน docker engine ลิ้งค์นี้ หรือ guiง่ายๆ แนะนำตัวนี้ portainer
- https://www.youtube.com/watch?v=YFl2mCHdv24
- https://www.youtube.com/watch?v=Qw9zlE3t8Ko
อ้างอิง
- https://blog.flux7.com/blogs/docker/8-ways-to-use-docker-in-the-real-world
- https://github.com/kstaken/dockerfile-examples
- https://medium.com/the-code-review/top-10-docker-commands-you-cant-live-without-54fb6377f481
- https://www.backblaze.com/blog/vm-vs-containers/
- https://www.pawangaria.com/post/docker/what-is-docker-container/
- https://docs.docker.com/samples/
- https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
- https://github.com/jakewright/tutorials/tree/master/docker
