docker构建私有仓库
一、题目
(1)使用dockerifle制作一个镜像,基于centos:7镜像部署安装nginx服务。
(2)将制作的镜像运行一个容器,使容器运行时自动开启nginx服务。验证服务正常运行。
(3)运行一个私有仓库,将自制镜像上传到私有仓库,且开启另外一台虚拟机同样加入私有仓库,在docker02上下载私有仓库镜像并运行一个容器,验证服务正常运行。
二、部署步骤
(一、)制作镜像
1.创建一个目录用于创建dockerfile文件
[code]mkdir test3
2.上传nginx源码包,如果没有可以进入官网下载
[code]rz 或者 wget http://nginx.org/download/nginx-1.14.2.tar.gz
3.进行编写dockerfile
[code]vim Dockerfile FROM centos:7 #设置基础镜像。 RUN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel #解决nginx依赖环境,安装依赖包。 ADD nginx-1.14.0.tar.gz /usr/src/ #将本地的nginx源码包复制到镜像中并解压。 RUN useradd -M -s /sbin/nologin nginx #创建nginx服务需要的用户。 WORKDIR /usr/src/nginx-1.14.0 #切换源码包目录,进行编译安装。 RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx RUN make && make install #编译安装。 RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #对nginx执行命令文件做软链接。 RUN nginx -t #检查配置是否有误。 RUN nginx #启动服务。 EXPOSE 80 #开启容器的80端口。
4.生成镜像
[code]docker build -t centos-nginx:wang .
5.查看镜像
(二、)运行容器
6.运行容器
[code]docker run -itd --name nginx-moban -p 80:80 --restart=always centos-nginx:wang nginx -g "daemon off;"
参数说明:
-itd:提供一个可交互的伪终端,并且保存后台运行。
--name:为容器取名。
-p:端口映射,宿主端口:容器端口
--restart=always:始终保持运行(随着docker开启而运行)
nginx -g "daemon off;" :保证容器运行之后,nginx服务就直接开启,不必手动开启。
7.访问测试
(三、)构建私有仓库
1.下载私有仓库镜像
[code]docker pull registry:2
2.查看镜像
3.运行容器
[code]docker run -itd --name siyoucangku --restart=always -p 5000:5000 -v /registry:/mnt/registry registry:2
参数:前面使用过的略过。
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化 (挂载目录。宿主机的目录:容器内的目录。 #也可以自动创建目录);
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
--name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
4.打标签
[code]docker tag centos-nginx:wang 120.26.83.25:5000/nginx
5.验证
[code]curl http://120.26.83.25:5000/v2/_catalog
能看到json格式的返回值时,说 明registry已经运行起来了。
6.上传镜像,但是会报错
[code]docker push 120.26.83.25:5000/nginx:latest
解决方法:
[code]vim /etc/docker/daemon.json { "registry-mirrors": [ "https://registry.docker-cn.com"], "insecure-registries": [ "120.26.83.25:5000"] }
7.重启docker
[code]ystemctl restart docker
8.再次上传镜像
[code]docker push 120.26.83.25:5000/nginx:latest
9.查看是否成功
[code]curl http://120.26.83.25:5000/v2/_catalog
(四、)验证
1.删除原有镜像
[code]docker rmi centos-nginx
2.下载镜像:
[code]docker pull 120.26.83.25:5000/nginx
3.启动查看:
- centos 7 安装docker win10系统用maven构建镜像并推送到docker私有仓库
- 企业级Docker私有仓库Harbor管理平台构建示例
- Docker学习--本地springboot项目使用Maven插件构建Docker镜像并自动上传到linux服务器docker私有仓库
- Ubuntu16.04使用Harbor构建Docker企业级私有仓库
- docker 构建私有仓库
- docker私有仓库构建
- 构建 Docker registry 私有镜像,解决docker私有仓库push出错问题
- 通过自己build构建docker的私有仓库
- Docker镜像的创建+构建私有仓库及其使用方法
- Ubuntu14.04安装Docker及构建私有仓库
- 构建docker高可用私有仓库基于Harbor开源系统
- 【Docker构建私有仓库】
- 构建 Docker registry 私有镜像,解决docker私有仓库push出错问题
- 使用Dockerfile构建镜像并push到私有仓库
- 关于Docker本地私有仓库的构建
- docker技术剖析--dockerfile and registry(构建容器和私有仓库)
- Docker-构建私有仓库Registry
- (六)构建Docker私有仓库、Gitlab仓库和持续集成环境
- 构建 Docker registry 私有镜像,解决docker私有仓库push出错问题
- 构建Docker私有仓库