Docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker安装镜像仓库
官方文档
https://github.com/docker/docker-ce https://www.docker.com
安装步骤
我是在Centos7的系统进行操作的,如果你是要装在Ubuntu上则将相关命令替换成apt即可。
- 下载
yum install -y wget nano net-tools docker - 开启docker
systemctl start docker - 查看docker状态
systemctl status docker
执行完命令以后docker就已经安装好了,下面开始进行Docker私人仓库的搭建
现在开始拉取私人仓库镜像
- 镜像拉取
docker pull registry:latest - 启动镜像
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest 通过使用docker ps -a 可以查看当前运行的所有镜像
创建容器常用的参数说明:
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
Portainer介绍
Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。
Portainer安装
官方文档
https://github.com/portainer/portainer https://www.portainer.io/installation/
安装步骤
- Docker Standalone & Docker Swarm
简单理解 前者是管理单个的Docker环境更为方便 后者是管理集群的Docker环境更为方便 - 下载
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest - 登录
使用浏览器去访问自己机器的IP加上9443端口,就能出现WEB页面了,然后开始设置一个高强度密码 - 添加搭建的私人仓库
输入自己想要设定的仓库名以及仓库的IP和端口(这里的仓库IP和端口就是我们之前安装的registry:latest镜像) - 拉取公共镜像
这里我拉取一个vulhub的镜像,然后将其修改标签,最后传到私人仓库 docker pull vulhub/solr:7.0.1 - 修改标签
docker tag vulhub/solr:7.0.1 仓库IP:仓库Port/solr:7.0.1 - 关闭防火墙
这里是需要在镜像服务器上进行操作,在上传之前还需要做将SELiunx、FireWalld关闭以及清空IPTables的规则当然也可以去优化里面的规则,最后编辑配置文件;如不能互相访问则需要将两边的规则进行清空。
编辑
/etc/docker/daemon.json文件
nano /etc/docker/daemon.json
{
"insecure-registries":["仓库IP:仓库Port"]
}
- 重启docker
systemctl restart docker setenforce 0 systemctl stop firewalld iptables -F - 上传
执行完上述命令以后即可push docker push 192.168.102.36:5000/solr:7.0.1 - 去Portainer查看是否能够正常拉取
这里由于私人仓库与Portainer是在同一服务器,所以下面的Images会显示出当前服务器的所有镜像,下面我使用一台独立的私人镜像服务器来进行演示,独立的镜像服务器就只需要跟着第一步就行了。 End 有任何问题欢迎留言讨论~
|