前言

可以把 docker-compose 想成是進階版的 dockerfile 設定檔

主要目的是讓你可以只設定一次就可以建置多個 container

續讀

docker 是一個應用程式虛擬化的東西,可以讓服務快速發佈使用

docker 複習及加上使用 dockerfile 一鍵跑到完

docker 的匯出與匯入、練習流程

安裝 docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

設定

建立目錄,在裡面新增 dockerfile 設定檔

(安裝 apache + php,弄個 phpinfo 的 index.php ,啟動 apache)

mkdir crossdocker
cd crossdocker
vi dockerfile
FROM centos:latest
MAINTAINER cross
RUN echo 'nameserver 8.8.8.8' > /etc/resolv.conf
RUN yum install php mod_php httpd -y
RUN echo 'ServerName localhost' >> /etc/httpd/conf/httpd.conf 
RUN echo '<?php phpinfo();?>' > /var/www/html/index.php
RUN systemctl enable httpd.service

再新增一個 docker-compose 需要的 yaml 檔

vi docker-compose.yml
version: "3"                        # https://docs.docker.com/compose/compose-file/
services:
  centos:                           # 自訂 title
    build: .                        # 在現在這個目錄作 build,也讀到現在這個目錄的設定檔
    image: cross/centos:latest      # REPO 名稱、TAG 名稱
    container_name: crosscentos     # NAMES 名稱
    privileged: true                # centos 需要
    command: /usr/sbin/init         # centos 需要
    volumes:                        # 掛載目錄
      - ./volumedisk:/volumedata
    ports:                          # mapping 8080 port to container 80
      - "8080:80"

# 如果沒給 image 、 container_name
# 就會是以 crossdocker 目錄,加上 services 後面接的 centos 讓 NAMES 叫 crossdocker_centos_1
# 而 image 會是 crossdocker_centos:latest
# centos 需要在 docker-compose up –build 時要有 -d
# command 要 init
# privileged 要 true
# docker-compose up –build -d 可以重覆執行,它的狀態會是 crosscentos is up-to-date

開始 build

docker-compose up --build -d

結果

成功的話就可以直接瀏覽 http://1.1.1.1:8080/index.php 可看到 phpinfo 資訊

最後修改日期: 2020 年 11 月 24 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。