文章目录
一、建立私有仓库
1.1.下载镜像Docker Registry
docker pull registry
1.2.运行私有库Registry
在本地建立一个私有docker hub
例子如下:
docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry
-d 后台运行
-p 端口映射 宿主机:5000 容器内:5000
左边5000是主机端口,右边5000是容器示例端口
-v /宿主机绝对路径目录:/容器内目录 镜像名
--privileged=true
大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。
1.3.将改进镜像推送到私有仓库
例子:假设我们commit了一个改动过的镜像,如下为zzyyubuntu:1.2
将该镜像打包——tag指令
docker tag 镜像名:版本 [重命名]
docker tag zzyyubuntu:1.2 192.168.111.167:5000/zzyyubuntu:1.2
192.168.111.167:5000/zzyyubuntu:1.2是重命名,为了区分原先镜像
1.4.将改进镜像推送到私有仓库
1.4.1修改http推送限制
由于docker 的伺服库做了安全加固,默认不支持http推送,需要取消这个限制。
需要在用vim指令修改 /etc/docker/daemon.json
vim /etc/docker/daemon.json
原先配置的阿里加速器还在,需要加入ip地址(自己电脑的Ip地址)
加入"insecure-registries":[“192.168.111.167:5000”],前后还有个逗号
保存退出
重启下
systemctl restart docker
1.4.2上传镜像
docker push 【需要上传的镜像名】
例:
docker push 192.168.111.167:5000/zzyyubuntu:1.2
二、容器卷
容器数据卷作用:
映射,容器内的数据备份+持久化到本地主机目录,可以比喻为电脑的移动硬盘挂载在电脑上
与cp功能类似,但是容器卷更强,能实时生效。
在主机的任何操作都会同步到容器,在容器内的操作同时也同步于主机
使用方式
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker inspect 镜像id
通过inspect查阅容器状态,将容器内各个版本,属性,以jason形式展示
可以观察到将两个路径绑定在一块,内容的改变,两边都会实时变动。
若想设置容器内只读不可写,加个ro(read only)
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名