docker 命令
1. 打包镜像(复制上级目录)
Dockerfile 中时执行
Copy ../
或 Add ../
是无效的,解决办法:指定 Dockerfile 的 build 目录。docker build -t productsort -f ./cmd/productsort/Dockerfile ./
docker-compose
1. 命令
# 启动当前目录的 docker-compose.yml 文件,-d 后台运行 docker-compose up -d # 使用 Dockerfile 定制镜像 docker build -t app:latest .
2. phpmyadmin&mysql
version: '3' services: db: image: mysql:5.7 container_name: db environment: MYSQL_ROOT_PASSWORD: my_secret_password MYSQL_DATABASE: app_db MYSQL_USER: db_user MYSQL_PASSWORD: db_user_pass ports: - "6033:3306" volumes: - dbdata:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin container_name: pma links: - db environment: PMA_HOST: db PMA_PORT: 3306 PMA_ARBITRARY: 1 restart: always ports: - 8081:80 volumes: dbdata:
Go 项目 Dockerfile
这是一个 Go 项目的 Dockerfile 文件例子,可根据该文件进行镜像打包。
FROM golang:alpine AS builder LABEL stage=gobuilder ENV CGO_ENABLED 0 ENV GOOS linux ENV GOPROXY https://goproxy.cn,direct WORKDIR /build/zero ADD go.mod . ADD go.sum . RUN go mod download COPY . . COPY etc /app/etc RUN go build -ldflags="-s -w" -o /app/bigdataapi bigdataapi.go FROM alpine RUN apk update --no-cache && apk add --no-cache ca-certificates tzdata ENV TZ Asia/Shanghai WORKDIR /app COPY --from=builder /app/bigdataapi /app/bigdataapi COPY --from=builder /app/etc /app/etc EXPOSE 8888 CMD ["./bigdataapi", "-f", "etc/bigdataapi-api.yaml"]