mkdir /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/http-proxy.conf
编辑 http-proxy.conf
文件,添加内容如下:
[Service]
Environment="HTTP_PROXY=http://dev-proxy.oa.com:8080/" "HTTPS_PROXY=http://dev-proxy.oa.com:8080/" "NO_PROXY=127.0.0.1,localhost"
HTTP_PROXY
和 HTTPS_PROXY
的值替换为公司的代理地址, NO_PROXY
添加不需要代理的地址。
确认配置后重启docker服务:
systemctl daemon-reload
# 确认配置的Environment
systemctl show --property=Environment docker
systemctl restart docker
私有docker仓库
如果需要拉取私有的docker仓库镜像,一般需要把仓库地址加入到 insecure-registries
。
在 /etc/docker/daemon.json
文件(没有则新建)中加入以下内容:
"insecure-registries" : ["mycompany.com:8080"]
# 拉取镜像
docker pull centos:7
# 临时使用
docker run -it --privileged --rm centos:7 bash
# 生成镜像
docker build --network=host -t xxx-mod-dev:v1 .
docker run -it --net=host --name xxxModDev -v /home/用户名:/home/用户名 xxx-mod-dev:v1 /bin/bash
# 容器中
cd /home/用户名
# 退出容器
# 再次进入容器
docker start -i xxxModDev
# 上传镜像(先登录)
TAG_VER=`date +%y%m%d%H`
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
# 清理悬空镜像
# docker image prune
docker rmi -f $(docker images -q -f dangling=true)
# 清理停掉24小时以上的容器(要保留的容器可以start,stop下)
docker container prune --filter "until=24h"
# 清理已停止容器、悬空镜像(比较暴力,建议使用上面两条命令)
# docker system prune
# 普通用户没有sudo权限,以root用户执行命令(安装软件)
docker exec -it -u root --privileged 容器Id或名称 bash
方法一是给用户添加sudo权限,方法二是在已启动容器以root身份执行命令。
docker exec -it -u root --privileged 容器Id或名称 bash
Cannot download Docker images behind a proxy
docker预编译二进制文件