🏠 首页 / Docker / Docker Compose 实践
Docker Compose 实践 #
安装 #
如果你安装了 Docker Desktop
,那么它已经帮你自动安装了 Docker Compose
插件。否则,需要额外安装插件。
使用一下命令安装或升级 Docker Compose
(linux):
- Ubuntu,Debian:
sudo apt update
sudo apt install docker-compose-plugin
- 基于 RPM 发行版:
sudo yum update
sudo yum install docker-compose-plugin
验证安装版本:
docker-compose version
常用命令 #
运行
docker-compose up
查看运行
docker-compose ps
停止
docker-compose stop
启动&重启
docker-compose start
docker-compose restart
退出
docker-compose down
使用 docker-compose -h
查看更多命令及参数。
实践 #
使用 Docker Compose
运行一个简单的 golang web 程序。
- 程序初始化
mkdir docker-compose-go-demo
cd docker-compose-go-demo
go mod init docker-compose-go-demo
- 创建
main.go
文件,并写入程序代码
package main
import (
"fmt"
"net/http"
"time"
)
func greet(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello Docker Compose! %s", time.Now())
}
func main() {
http.HandleFunc("/", greet)
http.ListenAndServe(":8080", nil)
}
- 创建
Dockerfile
文件,并编写内容
FROM golang:alpine
WORKDIR /app
COPY . .
EXPOSE 8080
ENTRYPOINT [ "go","run","main.go" ]
- 创建
docker-comppose.yml
文件,并编写内容
version: "3.9"
services:
web:
build: .
# image: docker-compose-go-demo_web:v1
# image: docker-compose-go-demo_web:v2
ports:
- "8080:8080"
- 启动服务
docker-compose up -d
场景:
- web 服务业务代码修改了,希望不停机更新服务:
docker-compose up -d --build
- 包含多个服务,例如中间件,但只想重新编译其中业务服务,如 web:
docker-compose up -d --no-deps --build web
如果
docker-compose.yml
直接使用的镜像,那么直接更新,再次docker-compose up -d
即可。