I. Docker compose là gì ?
Docker compose là phép tắc dùng để làm khái niệm cùng run multi-container mang lại Docker application. Với compose chúng ta áp dụng tệp tin YAML nhằm config những services đến application của người tiêu dùng. Sau đó dùng comm& nhằm create và run từ bỏ mọi config kia.Sử dụng cũng rất đơn giản chỉ với tía bước:
Knhị báo app’s environment vào Dockertệp tin.Khai báo những services quan trọng nhằm chạy application vào tệp tin docker-compose.yml.Run docker-compose up để start với run ứng dụng.Bạn đang xem: Những điều phải biết về docker compose, cách sử dụng và các lưu ý
II. Đặc điểm

Không y như Dockertệp tin (build các image). Docker compose dùng làm build với run những container. Các làm việc của docker-compose tương tự như như lệnh: docker run.
Docker compose được cho phép sản xuất nhiều service(container) kiểu như nhau bởi lệnh:
$ docker-compose scale =
III. Demo
Thiết lập web :npm
npm init react-ứng dụng hoặc yarn
yarn create react-app trong thử nghiệm là web React js
Tgiỏi thay đổi file App.js
import React, useState from "react";import "./App.css";function status(response) if (response.status >= 200 && response.status return fetch( "http://localhost:8080/api/v1/foods?id=" + foodId, method: "GET", headers: "Content-Type": "application/json; charset=UTF-8" ) .then(status) .then(json) .then(res => (new Promise((resolve sầu, reject) => resolve(res.data)))) .catch(err => alert("err: ", err); return undefined; );function App() const
App kiếm tìm món nạp năng lượng theo id
setFoodId(e.target.value)/> getFoodDetail(foodId).then(data => setDataFood(data)) > Tìm tìm Kết quả: dataFood
);}export default App;
App.css
.App text-align: center;.App-biểu tượng logo animation: App-logo-spin infinite 20s linear; height: 40vmin; pointer-events: none;.App-header background-color: #282c34; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: calc(10px + 2vmin); color: white;.input padding: 10px; width: 200px; border: 0; box-shadow: 0px 2px 30px 0px rgba(255,255,15,1); margin-right: 10px;.btnSearch padding: 10px 50px; color: white; background: blueviolet; border: 0; border-radius: 20px;.btnSearch:hover background: #c837de;.App-links color: #61dafb;
keyframes App-logo-spin from transform: rotate(0deg); khổng lồ transform: rotate(360deg); Phần server:
main.go
package mainimport ("net/http""strconv""github.com/gin-gonic/gin")func Options(c *gin.Context) if c.Request.Method != "OPTIONS" c.Next() else c.Header("Access-Control-Allow-Origin", "*")c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS")c.Header("Access-Control-Allow-Headers", "authorization, origin, content-type, accept")c.Header("Allow", "HEAD, GET, POST, PUT, PATCH, DELETE, OPTIONS")c.Header("Content-Type", "application/json")c.AbortWithStatus(200)func Secure(c *gin.Context) c.Header("Access-Control-Allow-Origin", "*")type Foods map
FROM node:carbon-alpine AS node_builderWORKDIR /app/webreactjsCOPY /webreactjs/package.json .RUN npm installCOPY /webreactjs .LABEL name="webreactjs" version="1.0"EXPOSE 3000CMD <"npm", "start">FROM golang:1.11 AS go_builderĐịa Chỉ . /appWORKDIR /appRUN go mod downloadRUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-w" -a -o /main .LABEL name="server" version="1.0"FROM alpine:latestRUN app android --no-cabịt add ca-certificatesCOPY --from=go_builder /main ./RUN chmod +x ./mainEXPOSE 8080CMD ./mainTiến hành build Dockerfile

Config services cần start cùng run trong tệp tin docker-compose.yml
version: "2.1"services: webreactjs: image: af1205224676 build: . ports: - 3000:3000 restart: always servergo: image: cef5deda0834 build: . ports: - 8080:8080 restart: alwaysversion: chỉ ra phiên phiên bản docker-compose vẫn sử dụng.services: thiết lập cấu hình những services(containers) ước ao thiết đặt với chạy.image: chỉ ra rằng image được áp dụng trong những khi tạo ra container.build: dùng để làm tạo container.
Xem thêm: Calligraphy Là Gì ? Tự Học Vẽ Calligraphy Tại Nhà Không Phải Ai Cũng Biết
ports: cấu hình thiết lập ports chạy tại trang bị host cùng vào container.restart: auto khởi chạy lúc container bị tắt.Hình như còn có một số trong những lệnh config khác:environment: thiết lập cấu hình trở nên môi trường thiên nhiên ( hay thực hiện trong khi config những thông số của db).
depends_on: chỉ ra sự dựa vào. Tức là services nào buộc phải được thiết đặt với chạy trước thì service được config trên đó bắt đầu được chạy.
volumes: dùng làm mount nhì thư mục bên trên host và container cùng nhau.
Run comm& nlỗi bên dưới:
$ docker-compose upSau khi run xong xuôi chúng ta thấy docker-compose đã start và run nhị service mà họ đang config vào tệp tin docker-compose.yml ở trên

Giờ là lúc bọn họ chiêm ngưỡng và ngắm nhìn kết quả đó thôi như thế nào



Mẹo nhỏ : Dành cho mình làm sao cần sử dụng Visual Studio Code giống mình đó là bạn có thể tạo thành nkhô giòn các config cho Dockertệp tin cùng docker-compose.yml chỉ bằng một vài ba thao tác làm việc bé dại. Trên Visual Studio Code các bạn download thêm extension Docker

Sau Lúc cài đặt hoàn thành nhấn F1 => gõ docker: add => chọn temp bao gồm sẵn + config port lúc này Visual Studio Code đang tự động hóa generate các fileDockertệp tin, docker-compose.yml, docker-compose.debug.yml, và.dockerignore cho bạn.
Hình như nó còn suggest lệnh cho chúng ta tương tự như là chú ý trong khi họ tự config những file của docker vô cùng một thể.