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

目录

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

[1.1 启动mysql镜像](#1.1 启动mysql镜像)

[1.2 启动owncloud镜像](#1.2 启动owncloud镜像)

[1.3 浏览器访问](#1.3 浏览器访问)

[1.4 总结](#1.4 总结)

[2、安装搭建私有仓库 Harbor](#2、安装搭建私有仓库 Harbor)

[2.1 下载docker-compose并赋予执行权限](#2.1 下载docker-compose并赋予执行权限)

[2.2 磁盘挂载,保存harbor](#2.2 磁盘挂载,保存harbor)

[2.3 修改配置文件](#2.3 修改配置文件)

[2.4 安装harbor](#2.4 安装harbor)

[2.5 浏览器访问](#2.5 浏览器访问)

[2.6 新建项目](#2.6 新建项目)

[2.7 修改docker配置,添加harbor仓库为信任地址](#2.7 修改docker配置,添加harbor仓库为信任地址)

[2.8 将要上传的镜像打标签](#2.8 将要上传的镜像打标签)

[2.9 登录harbor仓库](#2.9 登录harbor仓库)

[2.10 上传镜像](#2.10 上传镜像)

[2.11 浏览器查看](#2.11 浏览器查看)

[2.12 拉取镜像](#2.12 拉取镜像)

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

[3.1 编写Dockerfile](#3.1 编写Dockerfile)

[3.2 使用build 制作镜像](#3.2 使用build 制作镜像)

[3.3 基于自己制作的镜像创建容器](#3.3 基于自己制作的镜像创建容器)

[3.4 测试](#3.4 测试)

[3.5 打标签推送镜像到私有仓库](#3.5 打标签推送镜像到私有仓库)

[3.6 总结](#3.6 总结)

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

[4.1 编写Dockerfile](#4.1 编写Dockerfile)

[4.2 使用build 制作镜像](#4.2 使用build 制作镜像)

[4.3 基于自己制作的镜像创建容器](#4.3 基于自己制作的镜像创建容器)

[4.4 测试](#4.4 测试)

[4.5 推送镜像](#4.5 推送镜像)

[4.6 总结](#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

bash 复制代码
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指的是当容器启动的时候要执行的命令

相关推荐
wzq11_6665 小时前
Kubernetes集群——Pod篇
云原生·容器·kubernetes
资深技术分享员5 小时前
Geejing WebBuilder 数据库连接配置与在线 SQL 工具,运维的左右手
运维·数据库·sql·低代码
高山有多高5 小时前
【Linux笔记】UpdSocket
linux·运维·笔记
皓月盈江5 小时前
Linux系统grep、sed 、awk介绍下,使用方法及区别?
linux·运维·服务器·sed·grep·awk
云栖梦泽6 小时前
Linux内存管理
linux·运维·服务器
吴声子夜歌6 小时前
Nginx应用与运维——Nginx Web服务应用实战(静态文件服务器的搭建)
运维·前端·nginx
海宇服务6 小时前
零信任架构实战:基于海宇身份证OCR构建自动化自助终端核验网关
运维·人工智能·架构·自动化
ken22326 小时前
ubuntu 24.04, audacity 4 AppImage 加载 libavdevice.so.62 /.61 /.63 失败:依赖缺失?
linux·运维·ubuntu
wzq11_6666 小时前
Kubernetes集群——命令篇
云原生·容器·kubernetes
未完成的歌~6 小时前
Windows 系统镜像备份还原 操作手册
运维