Docker ã¯ã以åã«ãåå¼·ãã ãã¯ãã¦ããã®ã ãã©ãå®è·µãã¯ããã¾ãã§ãã¦ããªãã£ããã§ããããã®ã¨ãã Docker for Mac ã®è©å¤ãããã¶ãè¯ããããã®ã§ãé ãã¯ãªã£ããã©ãå®è·µãã®é åãããªã¨ãããã¨ã§è °ãä¸ãã¦ã¿ããDocker åå ¥éãã£ã¦ãã¨ã§ã
Docker for Mac ã®ã¤ã³ã¹ãã¼ã«ã¨ Getting Started
ããã®éãã«é²ãã¦ãã£ã¦ã¿ããDocker for mac 㯠2016/06/29 ç¾å¨ãpublic betaã
é²ãã¦ãããªãã§ãGetting Started ã®éä¸ã«ãããhello-world ã® docker run
ã«ã¦
$ docker run hello-world Unable to find image 'hello-world:latest' locally Pulling repository docker.io/library/hello-world docker: Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.. See 'docker run --help'.
ã¨ãªã£ã¦ãã¾ã£ãã
調ã¹ã¦ã¿ãã¨ããçç±ã¯äººããããã£ã¦æãã£ã½ããã ãã©ãåã®å ´å㯠DNS ãµã¼ãã®æå®é åºããããªãã£ããããã
éã«ãä¸çªä¸ã« 8.8.8.8
ãæå®ãããããã¾ããã£ãã
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world a9d36faac0fe: Pull complete Digest: sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 Status: Downloaded newer image for hello-world:latest Hello from Docker. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
ãã®è§£æ±ºçã¯ã Docker for Mac ã® forumã®ããã¨ãããã³ãã«ãªã£ãã ã¾ã βã ãããããããããã® forum ãè¦ãããã«ããã®ãããããã
Getting Started ã§ã¯ããã以å¤ã«ã¯ç¹ã«ã¤ã¾ã¥ããã¨ããã¯ãªãã£ãã
ä½æ¥...ã®ã¾ãã«ãç¨èªã®ç¢ºèª
ãããã docker-hogehoge
ã£ã¦ããã®ãå¤ããã¦ãä½ãä½ã ãããããªããªã£ã¦ãã¡ãã£ãã®ã§ã
docker-engine
Docker ã®å®è¡ç°å¢ãã®ãã®ãã£ã¦æã£ã¦ããã®ããªã
Docker Engine | Docker ã«ã¯ Docker Engine runs on Linux to create the operating environment for your distributed applications.
ã¨ããã®ã§ãLinux ç°å¢ä¸ã§ãã¨ãããã¨ã¿ããã ã
docker-compose
ãã¡ãã®ããã°ã«ãã£ã è¤æ°ã®ã³ã³ãããå©ç¨ãã¦ä¸ã¤ã®ãµã¼ãã¹ãæä¾ããå ´åã« YAML ä¸çºã§æ§ç¯åºæ¥ãããã«ãããã¼ã«
ã¨ãã説æããä¸çªãã£ããããã
ããã docker swarm
ããããªããããªãã£ãã£ããã¨æã£ãã®ã ãã©ãswarm ã¯ã³ã³ãããèµ·åãã¦ãããã¹ããè¤æ°ãããããªç¶æ³ã§ä½¿ããã¤ãã£ã¦æããªã®ããªã
docker-machine
Docker Machine Overview | Docker Documentation ãè¦ãã¨ã
Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage the hosts with
docker-machine
commands. You can use Machine to create Docker hosts on your local Mac or Windows box, on your company network, in your data center, or on cloud providers like AWS or Digital Ocean. -- What is Docker Machine? - https://docs.docker.com/machine/overview/
ã¨ãã£ã¦ãä¸è¿°ã® docker-engine ãããã¼ãã£ã«ãã¹ãã MacãWindows ã§ã使ããããã«ãã¦ããããã®ãã£ã¦æãã ãããããããããã
ã§ãããããã®ããããããã¼ã«é¡ã®ã»ããã¢ããã Docker for Mac ã®ã¤ã³ã¹ãã¼ã«ã ãã§æ¸ããããã®ã¯ãã¨ã¦ãæãé£ãã
Rails ã¢ããªã±ã¼ã·ã§ã³ãåãç°å¢ãä½ã£ã¦ã¿ã
é »åºç¨èªã®ç¢ºèªãã§ããã¨ããã§ã次ã®ã¹ãããã
ããã§ã®ã´ã¼ã«ã¨ãã¦ã¯ããã¡ãã Rails ã¢ããªã±ã¼ã·ã§ã³ã§ãããåã®ãã¼ããã©ãªãªãã¼ã¸ã» home.a-know.me
ã Docker ã³ã³ããã§åããããã¨ãã¨ããã®ãç®æãã¦ã¿ãããªãã¸ããªã¯ããâã
以ä¸ã®ï¼ã¤ã®ãã¼ã¸ãåèã»è¦æ¯ã¹ãªãããDockerfile 㨠docker-compose.yml ãä½æãã¦ã¿ãã
FROM ruby:2.3.0 ENV LANG C.UTF-8 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs npm nodejs-legacy RUN npm install -g phantomjs-prebuilt RUN gem install bundler ENV APP_HOME /a-know-home RUN mkdir $APP_HOME WORKDIR $APP_HOME ADD Gemfile* $APP_HOME/ RUN bundle install ADD . $APP_HOME
Dockerfile ã¯ãã¡ããã¡ãã docker build
ãã¦ç¢ºèªãããªããã¤ã¡ã¼ã¸ãä½ã£ã¦ãã£ãã
version: '2' services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/a-know-home ports: - "3000:3000"
ä»åã³ã³ããå
ã§èµ·åããããã¨ãã¦ãã Rails ã¢ããªï¼èªåã®ãã¼ããã©ãªãªãã¼ã¸ï¼ã¯æ¬å½ã«èãã¢ããªã±ã¼ã·ã§ã³ã§ãDB ãã使ã£ã¦ããªãããªã®ã§ docker-compose.yml
ãé常ã«ã·ã³ãã«ãDB ã使ããããªå ´åã ã¨ã services
ã®ä¸ã« db:
ã追å ãããããã£ã½ãã
ã¾ããã¢ããªã±ã¼ã·ã§ã³ã®åä½ã«å¿
è¦ãªç°å¢å¤æ°ãªãã ãã©ããã¨ãã¨ä½¿ãåæã«ãã¦ãã dotenv ã«ããã£ããã¯ä»»ãã¦ã¿ããã¨ã«ããã docker-compose.yml
å
ã§æå®ãããã¨ãã§ãããããã
docker-compose.yml
ã® command
ã«ã¢ããªã±ã¼ã·ã§ã³ãèµ·åãããããã® rails s
ãæ¸ãã¦ããã ãã©ãã³ã³ãããèµ·åãã¤ã¤ãã® command ãå®è¡ãããã«ã¯ docker-compose up
ã§ããã¿ããã
$ docker-compose up Recreating aknowhomerails_web Attaching to aknowhomerails_web web_1 | WARNING: Nokogiri was built against LibXML version 2.9.4, but has dynamically loaded 2.9.1 web_1 | => Booting Puma web_1 | => Rails 5.0.0.rc2 application starting in development on http://0.0.0.0:3000 web_1 | => Run `rails server -h` for more startup options web_1 | Puma starting in single mode... web_1 | * Version 3.4.0 (ruby 2.3.0-p0), codename: Owl Bowl Brawl web_1 | * Min threads: 0, max threads: 16 web_1 | * Environment: development web_1 | * Listening on tcp://0.0.0.0:3000 web_1 | Use Ctrl-C to stop
ã§ã http://localhost:3000 ãéãã¦ã¿ãã¨ã¼ã
ãã£ãã¼ã
ä»åã®ä½æ¥å 容ã®ã¾ã¨ãã¯âãã¡ãã«ã
ææ³
home.a-know.me
ã®æ¬çªç°å¢ã¯ãRails ã®ä»ã«
- fluentdï¼td-agentï¼
- nginx
- mackerel
...ã¨ãã£ããã®ãåãã¦ããã ãã©ãDocker ã使ã£ã¦ãã®æ¬çªç°å¢ãåç¾ãããã¨ãããªãã°ããããããã¨ã«ã³ã³ãããç¨æãã¦ããããã docker-compose
ã§ç®¡çãã...ããã¨ãã£ããããã«ãªããã®ããªã
ãããªãã°ãDocker ãã使ããç°å¢ã§ããã°ã©ãã§ãã¢ããªã±ã¼ã·ã§ã³ãåããããã¨ã«ãªãããã¼ããçæ³ã®ä¸çã
ä»ã®æ¬çªç°å¢ã¯ããããã£ãããã«ã¦ã§ã¢ã®ã¤ã³ã¹ãã¼ã«ã¨ãã¯ãã㶠Chef ã§ãã£ã¦ãããã«ã¹ã¿ã ã¬ã·ããæ¸ãã®ãããã¯ããã§æ¥½ãããã ãã©ãé¢åã ã£ããé£ããé¨åãç¡ãã¯ç¡ãããã£ã±ãä»å¾ã¯ Dockerã»ã³ã³ãããªä¸çããã£ã¦ãããã ããããªãã
æ¢åã®ã¢ããªã±ã¼ã·ã§ã³ã Docker ã«ãã¨ãªãã¨ã¡ãã£ã¨å¢ããå¿ è¦ã ãã©ãä»åº¦ãªã«ãæ°ããã¢ããªã±ã¼ã·ã§ã³ãã¤ããã¨ãã«ã¯ãæåãã Docker åæã§é²ãã¦ã¿ã¦ããããããããªããã¨æã£ãã
...ãã¨ãDocker for Macãä»åã®ä½æ¥ãããã¶ãã«ã¯ Docker ç°å¢å¨ãã§ä½ãã¤ã¾ã¥ãã¨ããããªãã£ãã®ã§ãæ¬å½ã«ã¤ã¤ããããªãã ã¨æãã¾ãï¼ Docker ãªä¸çãæ¡ããã®ãå éãããï¼