Docker设置与Docker-registry私有仓库

发布于 2017-05-04  7.91k 次阅读


首先自己电脑上安装好docker。安装方法见这里

docker-registry私有仓库搭建

docker-registry的官方安装教程在这。下面是2017.5.4日的中文版:

一行命令:

docker run -d -p 5000:5000 --name registry registry:2

便可以搭建一个名字是registry的docker容器,把本机的5000端口映射到容器内的5000。

下面拉取一个镜像,如ubuntu:

docker pull ubuntu

现在改一下tag,将其“标记为”127.0.0.1:5000下的某个镜像:

docker tag ubuntu 127.0.0.1:5000/myfirstimage

有了这个标记以后就能push到自建的仓库里了:

docker push 127.0.0.1:5000/myfirstimage

push到自建的仓库里以后,就能随时拉取了:

docker pull 127.0.0.1:5000/myfirstimage

docker镜像制作

制作前,先找一个类似的镜像。没有人会从头开始制作一个镜像,因为想得到的镜像基本都已经有人做了。

最不济,我们还是得使用别的打包好的操作系统的镜像 🙂

docker的原理就是在一个隔离的运行环境中运行一个/组程序。那么最终要的两个关注点就是:

  • 程序的环境如何配置
  • 程序本身如何配置

而这一切都是通过Dockerfile这个文件来配置的。

至于Dockerfile怎么写,参考某个镜像就明白了。这里推荐阅读这篇文章,第二部分就是如何构建一个镜像。

简单来说就是,先新建一个文件夹,在里面新建一个Dockerfile。格式就是:

FROM 现有镜像
RUN 命令

写好以后在当前目录下执行:

docker build -t 127.0.0.1:5000/imgname

就会构建一个镜像,标签就是127.0.0.1:5000/imgname。

docker build的过程实际上就是跑一遍dockerfile的命令,然后缓存每一行命令的执行结果。也正因此,如果改了某一行,那么docker只会从更改的那一行开始继续构建,而不会重复已经做得工作。

构建完成以后可以推送到镜像服务器:

docker push 127.0.0.1:5000/imgname

看到了吧,就这么几条命令就封装好一个镜像并且传到自建的仓库中了。以后就能随时在别的机器中pull下来直接用了。

桥接模式启动容器

有关docker容器的网络模式,详细见这里

使用桥接模式启动,只需要在docker start中添加--net=bridge即可,如:

docker start --net=bridge -name mycontainer 127.0.0.1:5000/imgname

查看容器的ip,使用:

docker inspect mycontainer

其他

常用docker命令,对容器、镜像、数据和网络的操作,见这里