近日需要频繁测试各种环境,奔波于各种虚拟机之间,虽然自己制作了诸多虚拟机环境模板,平时直接克隆软连接使用。
但是还是感受到了世界满满的恶意。
所以决定安装一下docker 减轻一下工作量。一个人kubernetes
就没必要装了吧。
觉得如果用kubernetes
去管理团队各个机器的开发者的环境,减轻他们平时环境搭建的麻烦还是挺不错的。
不过,还没到时候。
本文主要参考docker的官方文档。
安装docker ce 社区版 如果之前安装了旧版本的docker,旧版本docker名字是docker或者docker-engine
sudo apt-get remove docker docker-engine
因为新版本的docker仓库改为使用https
链接,所以,还要运行以下语句,让apt
允许使用https
方式链接
1 2 $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
安装官方源的GPG key,关闭GPG check应该也是可以的。
1 2 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
安装docker源 如果和我一样是使用linux mint
的话,$(lsb_release -cs)
并不能获取Ubuntu的版本代号,获取的是自己的。 自行修改,比如我的是16.04 那就是 xenial。
1 2 3 4 5 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ xenial \ stable"
更新源
1 2 3 4 sudo apt-get update sudo apt-get install docker-ce
done.
建私有仓库 先下载一个docker的registry镜像。
其实,应该 sudo apt install docker-registry
就能直接装一个的,当服务管理。
这里就用docker镜像实现吧。
我直接用root账户用docker
1 2 3 4 5 6 7 8 9 10 # docker pull registry # mkdir /e/docker/registry #搞个目录给仓库挂载 # docker run -d -p 5000:5000 -v /e/docker/registry:/tmp/registry registry # deamon方式运行registry镜像 暴露5000端口 # docker run -d -p 5000:5000 -v /e/docker/registry:/tmp/registry registry ad0169c6aa3fdf64e00157698f3c4938d55039661916c536b6e2dcce56ab5a40 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ad0169c6aa3f registry "/entrypoint.sh /e..." 14 seconds ago Up 14 seconds 0.0.0.0:5000->5000/tcp musing_davinci
尝试push一个镜像到自己仓库 我本地docker环境IP是 192.168.1.88
那么仓库地址就是 http://192.168.1.88:5000 首先给本地镜像打个tag
1 2 3 # docker pull centos # 先从官方镜像仓库拉一个centos回来测试 # docker tag centos 192.168.1.88:5000/centos
这个时候 # docker push 192.168.1.88:5000/centos
遇到了错误。
docker现在版本默认仓库都是使用https
协议连接的,要使用本地仓库,还能自定义添加非安全的仓库地址。
步骤如下:
1.修改 /etc/default/docker
1 DOCKER_OPTS="--registry-mirror=http://xxxxxxxx.m.daocloud.io --insecure-registry 192.168.1.88:5000 --dns 8.8.8.8 --dns 8.8.4.4"
重点是--insecure-registry 192.168.1.88:5000
这句 以往这样修改就没问题了。然而今天发现重启docker后,居然没生效。systemctl status docker
没看到启动参数有我们添加的内容
2.修改服务文件,增加指定启动参数
其实直接在ExecStart
直接添加--insecure-registry 192.168.1.88:5000
是一样可以的。 但是为了管理方便,和以后便于修改,就改成如下形式。从/etc/default/docker
读取$DOCKER_OPTS
的配置。
1 2 3 4 5 6 EnvironmentFile=/etc/default/docker ExecStart=-/usr/bin/dockerd -H fd:// $DOCKER_OPTS
这个时候再systemctl status docker
就能看到我们添加的参数了。
ps. docker.service
文件也可以通过systemctl status docker
查看到。
3.Push 到本地仓库
1 2 3 4 The push refers to a repository [192.168.1.88:5000/centos] 9b198ff9ff5b: Pushed latest: digest: sha256:d7f3db1caf4ea76117abce89709ebfc66c9339e13866016b8b2e4eee3ab4bea0 size: 529
这个时候就能很愉快地完成push到本地仓库了。
更方便的安装 看到这个的我眼泪留下来,daocloud.io搞的东西。
1 2 3 4 5 6 7 8 9 10 11 12 在 Linux上 安装 Docker Docker 的 安装资源文件 存放在Amazon S3,会间歇性连接失败。所以安装Docker的时候,会比较慢。 你可以通过执行下面的命令,高速安装Docker。 curl -sSL https://get.daocloud.io/docker | sh 适用于Ubuntu,Debian,Centos等大部分Linux,会3小时同步一次Docker官方资源 安装体验版或测试版,体验最新Docker。 curl -sSL https://get.daocloud.io/docker-experimental | sh curl -sSL https://get.daocloud.io/docker-test | sh
Centos7
1 2 3 4 5 6 7 yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum makecache fast yum install docker-ce yum install docker-ee
阿里云无外网IP,内网环境安装Docker 今天遇到,所以补充一下.阿里云提供了一个镜像源https://mirrors.cloud.aliyun.com/docker-ce/
但是没外网的时候是访问不了的,经过一番观察,只需做如下改动即可.
阿里云提供了一个内网访问的域名.将链接改成如下信息即可
http://mirrors.cloud.aliyuncs.com/docker-ce/
1 2 3 4 5 6 7 8 9 10 yum install -y yum-utils yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/https/http/g' /etc/yum.repos.d/docker-ce.repo sed -i 's/aliyun/aliyuncs/g' /etc/yum.repos.d/docker-ce.repo yum makecache fast yum install docker-ce yum install docker-ee
参考资料