搭建存储在Windows下的Docker Registry

时间:2024-04-14 14:21:32

这篇博客分为两部分,介绍了使用VMware WorkStation安装Docker for Windows,搭建存储在Windows下的Docker Registry。

转载请声明出处http://www.hiknowledge.top/2019/01/17/搭建存储在windows下的docker-registry/

安装 Docker for Windows 使用 VMware WorkStation 驱动

  1. 安装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容器。

搭建存储在Windows下的Docker Registry

  1. 设置Docker for Windows不要开机启动,否则是真的烦。

  2. 设置Docker Desktop Serive为手动启动,需要时开启。

搭建存储在Windows下的Docker Registry

  1. 下载boot2docker.iso

下载地址 Release

我下载的v18.09.1

然后将 boot2docker.iso 放在 C:\Users\<用户名>\.docker\machine\cache,文件夹不存在就自己建立。

  1. 下载 VMware Workstation 驱动

下载地址 Release,此驱动非官方开发,但是也在官方的文档中有链接。

然后将 docker-machine-driver-vmwareworkstation.exe复制到 C:\Program Files\Docker\Docker\resources\bin 下:

搭建存储在Windows下的Docker Registry

  1. 安装Docker Machine

VMware版本必须大于10。

  1. 创建dev示例
docker-machine create --driver=vmwareworkstation dev

中间过程没有截图,图片类似如下

搭建存储在Windows下的Docker Registry

  1. 验证安装
docker-machine ls

会出现一个dev的实例
搭建存储在Windows下的Docker Registry

  1. **实例
docker-machine env dev

搭建存储在Windows下的Docker Registry

  1. 设置环境变量

类似如下:

变量名 变量值
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

设置这五个即可,最后记得要点确定。

  1. 验证是否安装成功

登录dev实例

docker-machine ssh dev

搭建存储在Windows下的Docker Registry

运行hello-world

docker run hello-world

搭建存储在Windows下的Docker Registry

虽然没有Docker for Windows的图像界面,但命令行都是全的。

  1. 关闭
docker-machine stop dev

搭建存储在Windows下的Docker Registry

  1. 启动
docker-machine start dev

搭建存储在Windows下的Docker Registry

搭建存储在Windows下的Docker Registry

  1. 通过VMWare 打开已有虚拟机

搭建存储在Windows下的Docker Registry

  1. 选择虚拟机

C:\Users\<用户名>\.docker\machine\machines\dev

搭建存储在Windows下的Docker Registry

  1. 关机 Power off

  2. 设置共享目录

我发现,相同的共享目录方式,boot2docker.iso设置的共享目录,当容器挂载volume时是不冲突的。

搭建存储在Windows下的Docker Registry

共享目录在/mnt/hgfs/myregistry

搭建存储在Windows下的Docker Registry

  1. 修改/etc/ssl/openssl.cnf
sudo -i

vi /etc/ssl/openssl.cnf
# 在[ v3_ca ]下填
subjectAltName=IP:192.168.237.128
  1. 生成**
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/
  1. 放置**

除了在该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
  1. 启动 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
  1. 在其他虚拟机上测试

配置步骤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

完美,至此搭建存储在Windows下的Docker Registry。

主要参考

  1. Docker for Windows 使用 VMware WorkStation
  2. Create a private local docker registry
  3. Deploy a registry server