1. Home
  2. Docs
  3. docker

docker

Docker加速 国内镜像

官方镜像: go env -w GOPROXY=https://goproxy.io,direct
七牛云: go env -w GOPROXY=https://goproxy.cn,direct
网易 go env -w GOPROXY=http://hub-mirror.c.163.com,direct

查看设置加速设置: go env | grep GOPROXY

Docker pull阶段代理设置

docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

创建文件: proxy.conf (在这个proxy.conf文件(可以是任意*.conf的形式)中,添加以下内容)

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

sudo systemctl daemon-reload

sudo systemctl restart docker

systemctl show --property=Environment docker 查看配置是否加载成功

Tip: 实践系统 CentOS-7

相关资料01-Docker的三种网络代理配置

FAQ

ERROR: Pool overlaps with other one on this address space?

自定义网段被占用, 通过docker network ls docker network inspect [network id] 查看现在启动的网段定义. 处理方法: 改自己定义的网段OR关闭现在启动的网段容器.

什么是多阶段构建?

一个dockerfile中有多个from

FROM golang:1.9-alpine as builder

RUN apk --no-cache add git

WORKDIR /go/src/github.com/go/helloworld/

RUN go get -d -v github.com/go-sql-driver/mysql

COPY app.go .

RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest as prod

RUN apk --no-cache add ca-certificates

WORKDIR /root/

COPY --from=0 /go/src/github.com/go/helloworld/app .

CMD ["./app"]

Dockerfile 多阶段构建

如何开启Remote API(远程开发)?

ubuntu系统

sudo vi /lib/systemd/system/docker.service

在ExecStart中追加-H tcp://0.0.0.0:2375

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
#ExecStart=/usr/bin/dockerd -H fd://

重启

sudo systemctl daemon-reload

sudo service docker restart

校验结果 浏览器访问docker服务器IP:2375/images/json

相关资料

Docker开启Remote API

Articles

Was this article helpful to you? Yes No

How can we help?