参考官方教程:docker registry官方文档
docker registry安装
登录ubuntu14.04后,执行安装命令:docker run -d -p 5000:5000 --name registry registry:2
对应国内镜像库命令是:sudo docker run -d -p 5000:5000 --name registry daocloud.io/library/registry:2
注意:因为使用的是docker命令,所以需要提前安装docker,参考:docker安装
因为docker registry默认是需要认证登录的,我们是内部用于CICD,所以暂时不需要权限登录
所以需要修改/etc/default/docker
DOCKER_OPTS="--insecure-registry ${ip}:${port}"
删除或停止docker registry
docker stop registry && docker rm -v registry
构建镜像
docker镜像的制作是一层一层累加起来,而且是每个dockerfile命令是一layer,所以,针对于我们的项目,首先得需要一个操作系统的基础镜像
1.上传操作系统基础镜像
在上传基础镜像之前,需要修改目标镜像要上传的仓库地址。在这里是根据镜像的tag去识别,需要上传的私有仓库地址
docker tag {image-id} ${docker-registry-ip}:${port}/unbuntu:14.04
docker push ${docker-registry-ip}:${port}/unbuntu:14.04
注意:如果是执行docker push unbuntu:14.04命令,是上传官方仓库,是需要注册账号
如何判断是否上传成功:
也可以查看:http://${ip}:${port}/v2/_catalog或是curl -i -k -v http://${ip}:${port}/v2/_catalog
2.制作nodejs安装镜像
(1)dockerfile构建镜像
docker提供dockerfile命令区构建镜像,所以用户只需书写Dockerfile文件即可。这里我们的Dockerfile文件内容为
然后,我们执行docker构建命令:docker build -t test:1.0 .
构建成功后,可以通过docker image命令查看镜像,使用docker run imageid来启动镜像
进入容器命令:docker exec -it container-id bash 退出容器,保持容器状态:ctrl+d
(2)docker commit构建
方法一中镜像的构建,是基于基础镜像之上的叠加。那么我们在想基础镜像是如何构建的。下边介绍的方法是适用于基础镜像的构造。譬如ubuntu镜像的构建可以使用lxc。这一步不详细讲解了,ubuntu的基础镜像很多,我们先docker命令下载一个最基础的镜像。然后执行docker run命令启动镜像,创建一个容器
docker exec -it {image-id} bash进入容器,需要安装什么在容器内执行安装命令。