总结一下docker的相关命令
docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379 \ # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass "123456" # 完整命令 docker run \ -d \ # 后台运行 --name n8nio/n8n:latest \ # 自定义名字 -p 5678:5678 \ # 端口映射 n8nio/n8n:latest # 镜像名称 docker run -d --name n8nio -p 5678:5678 n8nio/n8n:latest docker run -d --name n8nio -p 5678:5678 docker.n8n.io/n8nio/n8n:latest --tunnel docker run -it --rm \ --name n8n \ 5678:5678 \ n8nio/n8n:latest start --tunnel docker run -d --name viewtube -p 5566:5566 mauriceo/viewtube:latest
# 先拉个centos镜像下来 docker pull centos # 创建个容器 docker run -d -it --name centos1 centos docker run -d -it --name centos2 centos docker inspect centos1_id
[ { "NetworkSettings": { "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "9e7ed6d29ca3474de04409833e39b7c7965c7c63d3a1f509886a7a998e4825f8", "EndpointID": "41230bf523fac8fa4933989d98baaaa7655fba5c5dadd14e63839ffe868ed3f8", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.4", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:04", "DriverOpts": null } } } } ] docker inspect centos2_id
[ { "NetworkSettings": { "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "9e7ed6d29ca3474de04409833e39b7c7965c7c63d3a1f509886a7a998e4825f8", "EndpointID": "8ae77d46887c795983ee7a8fb96951d05e236b4ca4b4caa5d5964f892e18a476", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:05", "DriverOpts": null } } } } ]
docker-compose up
命令来启动并运行整个应用程序。# yaml 配置实例 version: '3' # 表示该 Docker-Compose 文件使用的是 Version 3 file services: web: # 指定服务名称 build: . # 指定 Dockerfile 所在路径 ports: # 指定端口映射 - "5000:5000" volumes: # 挂载 - .:/code - logvolume01:/var/log links: # 将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况 - redis redis: image: redis volumes: # 卷挂载路径 logvolume01: {}
#轻型scratch镜像 FROM golang:alpine AS builder # 为我们的镜像设置必要的环境变量 ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 \ GOPROXY=https://goproxy.cn,direct # 移动到工作目录:/build WORKDIR /build # 将代码复制到容器中 COPY . . # 将我们的代码编译成二进制可执行文件 app RUN go build -o app . ################### # 接下来创建一个小镜像 ################### FROM scratch # 复制文件或文件夹到镜像中 #COPY data/log /log ## 移动到工作目录:/svc #WORKDIR /cmd # 从builder镜像中把/build/app 拷贝到当前目录 COPY --from=builder /build/app . # 声明服务端口 EXPOSE 40005 # 需要运行的命令 ENTRYPOINT ["/app"]