这篇博客分为两部分,介绍了使用VMware WorkStation安装Docker for Windows,搭建存储在Windows下的Docker Registry。
转载请声明出处:http://www.hiknowledge.top/2019/01/17/搭建存储在windows下的docker-registry/
安装 Docker for Windows 使用 VMware WorkStation 驱动
- 安装Docker for Windows
我的实验版本是v18.09.1
官方文档 Install Docker Desktop for Windows
下载链接
System Requirements:
- Windows 10 64bit: Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or later).
- Virtualization is enabled in BIOS. Typically, virtualization is enabled by default. This is different from having Hyper-V enabled. For more detail see Virtualization must be enabled in Troubleshooting.
- CPU SLAT-capable feature.
- At least 4GB of RAM.
安装过程中,Docker for Windows 会自动运行,此时会出现提示没有启用Hyper-V,这里点击cancel即可,且不勾选采用Windows容器。
-
设置Docker for Windows不要开机启动,否则是真的烦。
-
设置Docker Desktop Serive为手动启动,需要时开启。
- 下载boot2docker.iso
下载地址 Release
我下载的v18.09.1
然后将 boot2docker.iso 放在 C:\Users\<用户名>\.docker\machine\cache
,文件夹不存在就自己建立。
- 下载 VMware Workstation 驱动
下载地址 Release,此驱动非官方开发,但是也在官方的文档中有链接。
然后将 docker-machine-driver-vmwareworkstation.exe
复制到 C:\Program Files\Docker\Docker\resources\bin
下:
- 安装Docker Machine
VMware版本必须大于10。
- 创建dev示例
docker-machine create --driver=vmwareworkstation dev
中间过程没有截图,图片类似如下
- 验证安装
docker-machine ls
会出现一个dev的实例
- **实例
docker-machine env dev
- 设置环境变量
类似如下:
变量名 | 变量值 |
---|---|
COMPOSE_CONVERT_WINDOWS_PATHS | true |
DOCKER_HOST | tcp://192.168.237.128:2376 |
DOCKER_MACHINE_NAME | dev |
DOCKER_CERT_PATH | C:\Users\jahentao\.docker\machine\certs |
DOCKER_TLS_VERIFY | 1 |
设置这五个即可,最后记得要点确定。
- 验证是否安装成功
登录dev实例
docker-machine ssh dev
运行hello-world
docker run hello-world
虽然没有Docker for Windows的图像界面,但命令行都是全的。
- 关闭
docker-machine stop dev
- 启动
docker-machine start dev
搭建存储在Windows下的Docker Registry
- 通过VMWare 打开已有虚拟机
- 选择虚拟机
在C:\Users\<用户名>\.docker\machine\machines\dev
下
-
关机 Power off
-
设置共享目录
我发现,相同的共享目录方式,boot2docker.iso设置的共享目录,当容器挂载volume时是不冲突的。
共享目录在/mnt/hgfs/myregistry
- 修改
/etc/ssl/openssl.cnf
sudo -i
vi /etc/ssl/openssl.cnf
# 在[ v3_ca ]下填
subjectAltName=IP:192.168.237.128
- 生成**
mkdir -p certs
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 365 -out certs/domain.crt
# 回车
# Common Name (e.g. server FQDN or YOUR name) []: 192.168.237.128 # 填Docker Registry的IP地址
将生成的**保存好,其他虚拟机配置**还要用
# 放到Windows下
mkdir -p /mnt/hgfs/myregistry/docker/lab/certs/128/
cp certs/domain.key certs/domain.crt /mnt/hgfs/myregistry/docker/lab/certs/128/
- 放置**
除了在该dev中,在其他需要使用私有仓库的虚拟机中,也是相同的配置
mkdir -p /etc/docker/certs.d/192.168.237.128:5000
cp /mnt/hgfs/myregistry/docker/lab/certs/128/domain.crt /etc/docker/certs.d/192.168.237.128:5000/ca.crt
- 启动 Registry,将存储放到
sudo docker run -d -p 5000:5000 --restart=always --name registry \
-v /mnt/hgfs/myregistry/docker/lab/certs/128/:/certs \
-v /mnt/hgfs/myregistry:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
- 在其他虚拟机上测试
配置步骤7.
有时需要重启Docker
docker pull ubuntu
docker tag ubuntu 192.168.237.128:5000/ubuntu:latest
docker push 192.168.237.128:5000/ubuntu:latest
完美,至此搭建存储在Windows下的Docker Registry。