前言
可以把 docker-compose 想成是進階版的 dockerfile 設定檔
主要目的是讓你可以只設定一次就可以建置多個 container
續讀
docker 是一個應用程式虛擬化的東西,可以讓服務快速發佈使用
docker 複習及加上使用 dockerfile 一鍵跑到完
安裝 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 資訊
留言