docker 搭建私有仓库和制作镜像

目录

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。

1.1 启动mysql镜像

1.2 启动owncloud镜像

1.3 浏览器访问

1.4 总结

2、安装搭建私有仓库 Harbor

2.1 下载docker-compose并赋予执行权限

2.2  磁盘挂载,保存harbor

2.3 修改配置文件

2.4  安装harbor

2.5 浏览器访问

2.6 新建项目

2.7 修改docker配置,添加harbor仓库为信任地址

2.8  将要上传的镜像打标签

2.9 登录harbor仓库

2.10 上传镜像

2.11 浏览器查看

2.12 拉取镜像 

3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下:

3.1 编写Dockerfile

3.2 使用build 制作镜像

3.3 基于自己制作的镜像创建容器

3.4 测试

3.5 打标签推送镜像到私有仓库

3.6 总结

4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:

4.1 编写Dockerfile

4.2 使用build 制作镜像

4.3 基于自己制作的镜像创建容器

4.4 测试

4.5 推送镜像

4.6 总结


1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。

1.1 启动mysql镜像


1.2 启动owncloud镜像

--link <name or id>:alias

其中,name和id是源容器的name和id,alias是源容器在link下的别名。

当使用–link参数时,docker会自动在共享两个容器的变量。访问数据库的时候,不再是通过IP的方式来访问,而是通过容器名来访问.

docker run 的-p 参数

       -p, --publish ip:[hostPort]:containerPort | [hostPort:]containerPort
          Publish a container's port, or range of ports, to the host. 


1.3 浏览器访问


1.4 总结

 启动的时候

只用-it参数不用-d参数,终端有很多输出,并且会卡在终端

如果只用-d 参数有可能启动不了容器。用docker start xxx 也可能启动不了。这个时候docker  run

的时候可以用-itd 参数。 


2、安装搭建私有仓库 Harbor

2.1 下载docker-compose并赋予执行权限

下载地址:GitHub - docker/compose: Define and run multi-container applications with Docker

mv docker-compose-linux-x86_64 /usr/local/bin
cd /usr/local/bin/
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 docker-compose

查看是否安装好了


2.2  磁盘挂载,保存harbor


2.3 修改配置文件


2.4  安装harbor

 

harbor实际就是启动了一些docker服务 


2.5 浏览器访问

使用admin登录,密码为Harbor12345(初始密码在harbor.yml文件有记录)


2.6 新建项目


2.7 修改docker配置,添加harbor仓库为信任地址

 


2.8  将要上传的镜像打标签

将拉下来的镜像不做任何修改打一个标签为xxx:yyy 推送的时候会失败。


2.9 登录harbor仓库


2.10 上传镜像


2.11 浏览器查看


2.12 拉取镜像 


3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下:


(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。

3.1 编写Dockerfile


3.2 使用build 制作镜像


3.3 基于自己制作的镜像创建容器


3.4 测试


3.5 打标签推送镜像到私有仓库

打标签

 登录:

推送:

查看:


3.6 总结

(1)如果Dockerfile中需要的镜像本地没有,那么也可以在线拉取,且不会保存到本地,速度比较慢

(2)基于centos作为基础镜像,如果不指定标签,默认为centos8,官方不再维护,这个时候的yum源已经过期不能用了。所以如果在Dockerfile里面使用RUN yum  的话构建镜像的时候会失败。

(3)docker cp nginx-1.22.0-1.el7.ngx.x86_64.rpm centos701:/rpm   ---从宿主机复制东西给容器(centos701是容器名称也可以使用容器id,/rpm是容器内路径,从宿主机复制过来的东西会保存到此目录)

docker cp centos701:/rpm/nginx-1.22.0-1.el7.ngx.x86_64.rpm /root ---从宿主机复制东西给容器


4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:


(1)基于centos:6基础镜像;
(2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口;
(5)设置服务自启动。
(6)验证镜像。

4.1 编写Dockerfile


4.2 使用build 制作镜像


4.3 基于自己制作的镜像创建容器


4.4 测试


4.5 推送镜像

 


4.6 总结

(1)centos6无法使用yum源的问题,需要添加一个源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo

将Centos-6-Vault-Aliyun.repo保存成CentOS-Base.repo

(2)docker run --name lamp1 -itd -p 9999:80 lamp:v1.1  之后容器没有启动并且用docker  start  命令也无法启动。试试用这个:docker run -d --name lamp1 -p 9999:80 lamp:v1.1 tail -f /dev/null。如果这样启动可能会有影响比如说Dockerfile 中的CMD指令不会执行

(3)Dockerfile 中 CMD指的是当容器启动的时候要执行的命令

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值