Nghĩa Của Từ Compose

  -  

I. Docker compose là gì ?

Docker compose là pháp luật dùng làm tư tưởng cùng run multi-container đến Docker application. Với compose chúng ta sử dụng tệp tin YAML để config các services đến application của người tiêu dùng. Sau kia dùng command nhằm create với run từ bỏ những config đó.Sử dụng cũng rất đơn giản chưa đến ba bước:

Knhị báo app’s environment vào Dockerfile.Knhì báo các services quan trọng nhằm chạy application vào file docker-compose.yml.Run docker-compose up để start cùng run ứng dụng.

Bạn đang xem: Nghĩa của từ compose

II. Đặc điểm

*

Không giống như Dockerfile (build những image). Docker compose dùng để build và run các container. Các thao tác của docker-compose giống như như lệnh: docker run.

Docker compose chất nhận được chế tác các service(container) giống như nhau bằng lệnh:

$ docker-compose scale =

III. Demo

Thiết lập web :

npm

npm init react-app hoặc yarn

yarn create react-tiện ích trong demo là web React js

Ttuyệt thay đổi tệp tin 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, reject) => resolve(res.data)))) .catch(err => alert("err: ", err); return undefined; );function App() const = useState(0); const = useState(""); return (

App tra cứu món ăn uố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-hình ảnh sản phẩm 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); lớn 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 mapstringvar foods = Foods1: "Gà kho xả ớt", 2: "Cá lóc kho", 3: "Thịt xào măng", 4: "Bún chả cá"func getFoodById(c *gin.Context) id, err := strconv.Atoi(c.Query("id"))if err != nil c.JSON(http.StatusOK, gin.H"error": err.Error())if len(foods) > 0 c.JSON(http.StatusOK, gin.H"data": foods) else c.JSON(http.StatusOK, gin.H"data": "Không tìm thấy")func main() r := gin.Default()r.Use(Options)r.Use(Secure)v1 := r.Group("/api/v1")v1.GET("/foods", getFoodById)r.Run(":8080")Config trong Dockerfile. Nếu bạn không biết về những lệnh để config Dockertệp tin. Đừng băn khoăn lo lắng hãy xem xét lại phần 1: trên đây

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ỉ cửa hàng . /appWORKDIR /appRUN go gian lận downloadRUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-w" -a -o /main .LABEL name="server" version="1.0"FROM alpine:latestRUN android --no-cache add ca-certificatesCOPY --from=go_builder /main ./RUN chmod +x ./mainEXPOSE 8080CMD ./mainTiến hành build Dockerfile

*

Config services phải start và 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 đã sử dụng.services: tùy chỉnh các services(containers) mong muốn thiết đặt và chạy.image: chỉ ra rằng image được sử dụng trong những khi tạo ra container.build: dùng để làm tạo thành container.

Xem thêm: Tầm 4 Triệu Nên Mua Điện Thoại Gì 2021 Tiền Ít Nhưng Hít Toàn

ports: thiết lập cấu hình ports chạy tại thiết bị host cùng trong container.restart: tự động hóa khởi chạy Lúc container bị tắt.Ngoài ra còn có một trong những lệnh config khác:

environment: tùy chỉnh cấu hình biến chuyển môi trường ( hay thực hiện trong những khi config những thông số kỹ thuật của db).

depends_on: chỉ ra rằng sự nhờ vào. Tức là services như thế nào phải được thiết đặt cùng chạy trước thì service được config tại kia mới được chạy.

volumes: dùng để làm mount nhì thỏng mục bên trên host và container với nhau.

Run command nhỏng bên dưới:

$ docker-compose upSau khi run chấm dứt họ thấy docker-compose đã start với run nhị service nhưng bọn họ đang config vào tệp tin docker-compose.yml sinh hoạt trên

*

Giờ là lúc bọn họ chiêm ngưỡng thành quả này thôi nào

*

*

*

Mẹo nhỏ : Dành cho bạn làm sao dùng Visual Studio Code tương tự mình chính là chúng ta có thể sinh sản nhanh khô những config đến Dockertệp tin và docker-compose.yml chỉ bằng một vài ba thao tác nhỏ tuổi. Trên Visual Studio Code chúng ta thiết lập thêm extension Docker

*

Sau khi mua xong nhận F1 => gõ docker: add => chọn temp bao gồm sẵn + config port hôm nay Visual Studio Code đã tự động hóa generate các fileDockertệp tin, docker-compose.yml, docker-compose.debug.yml, cùng.dockerignore cho bạn.

Xem thêm: Tổng Quan Ngành Hóa Dược - Ngành Học Được Nhiều Bạn Trẻ

Dường như nó còn suggest lệnh cho bọn họ cũng tương tự là lưu ý trong khi bọn họ từ config những file của docker hết sức tiện.