docker小白第五天

docker小白第五天

docker的私有库

有些涉密的信息代码不能放在阿里云的镜像仓库,因此需要构建一个个人内网专属的私有库,将镜像或者容器代码进行推送保存。

下载镜像docker registry

执行代码docker pull registry,用于搭建私服前的准备。
docker小白第五天_第1张图片
然后运行私有库registry,相当于本地有个私有的docker hub。

docker run -d -p 5000:5000 -v /cz/myregistry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/varlib/lregistry目录下,建议自行用容器卷映射,方便于宿主机联调。其中的5000:5000是端口,-p是指定端口映射。-d是后台守护式新建容器。
docker小白第五天_第2张图片

为原始ubuntu镜像增加ifconfig包命令

原始的ubuntu镜像启动一个ubuntu容器后,是无法识别ifconfig命令的,因此需要生成容器后,手动添加ifconfig包,然后生成成镜像副本,在上传到本地私有库中去。

docker pull ubuntu  
下载原始ubuntu镜像
docker run -it --name=myubuntu ubuntu /bin/bash
以交互式启动容器
apt-get update
更新apt管理器
apt-get install net-tools
安装ifconfig命令的包
ifconfig 验证容器是否能识别该命令

docker小白第五天_第3张图片
可以看到已经可以识别ifconfig了,刚刚新建的这个容器,他自己的ip是172.17.0.3

docker commit -m="add ifconfig cmd" -a="cz" 1a87279a5cbe myubuntu:1.0
编辑生成镜像的信息,要在容器外执行这个命令

可以看到生成镜像成功,然后docker images查看,已有该镜像。
docker小白第五天_第4张图片
在这里插入图片描述

然后利用刚刚生成的镜像新建一个容器,执行`ifconfig`可以看到是已经识别该命令的。

docker小白第五天_第5张图片

上传修改后的镜像到本地私服库

先执行代码,看看刚刚运行起来的私服库registry是否曾经上传过镜像

curl -XGET http://192.168.5.3:5000/v2/_catalog
查看镜像推送日志,ip输的是容器的宿主机ip,端口是刚刚创建容器时指定的5000。

可以看到没有历史上传记录
在这里插入图片描述

docker tag myubuntu:1.0 192.168.5.3:5000/myubuntu:1.0
打包刚刚生成的镜像,准备提交本地私有仓库

在执行docker images可以看到刚刚打包好的镜像
docker小白第五天_第6张图片

cat /etc/docker/daemon.json
vim /etc/docker/daemon.json
需要在这个json文件里边取消docker默认不允许http方式推送镜像的限制

vim进入这个文件后,先加个“,”号,然后输入如下命令,其中ip需要替换为自己宿主机的ip。如果修改完成后,仍然不生效,可以尝试重启docker。

"insecure-registries":["192.168.5.3:5000"]

docker小白第五天_第7张图片
然后执行systemctl restart docker重启docker。然后重运行下私服仓库docker run -d -p 5000:5000 -v /cz/myregistry/:/tmp/registry --privileged=true registry

docker push 192.168.5.3:5000/myubuntu:1.0
用docker images查看后,推送刚刚打包的镜像

docker小白第五天_第8张图片

查看私服库上刚刚推送的镜像记录
curl -XGET http://192.168.5.3:5000/v2/_catalog

在这里插入图片描述
然后删除刚刚打包和生成的镜像,重新去私服库上pull下来,运行,看看是否能正常识别ifconfig命令。

docker rmi -f 镜像id
强制删除某个镜像
docker pull 192.168.5.3:5000/myubuntu:1.0
从私服库下载刚刚上传过的镜像
docker images
查看是否已经下载成功
docker run -it 025303e926d7 /bin/bash
重新运行这个容器
ifconfig
测试该命令

可以看到已经成功。
docker小白第五天_第9张图片

你可能感兴趣的:(docker,容器,运维)