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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/87326.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prompt-“设计提示模板:用更少数据实现预训练模型的卓越表现,助力Few-Shot和Zero-Shot任务”

Prompt任务&#xff08;Prompt Tasks&#xff09; 通过设计提示&#xff08;prompt&#xff09;模板&#xff0c;实现使用更少量的数据在预训练模型&#xff08;Pretrained Model&#xff09;上得到更好的效果&#xff0c;多用于&#xff1a;Few-Shot&#xff0c;Zero-Shot 等…

Ubuntu系列弹性云服务器如何安装图形化界面?

​ 参考链接&#xff1a;Ubuntu系列弹性云服务器如何安装图形化界面&#xff1f; 操作场景 为了提供纯净的弹性云服务器系统给客户&#xff0c;Ubuntu系列弹性云服务器默认未安装图形化界面&#xff0c;如果您需要使用图形化界面&#xff0c;请参见本节内容进行安装。 对于GPU加…

Docker是什么?详谈它的框架、使用场景、优势

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、什么是 Docker&#xff1f; 二、Docker 的架构 1、Docker客户端 2、Docker守护进程 3、Docker镜像 4、Docker容器 5、Docker…

基于JAVA SpringBoot和UniAPP的宠物服务预约小程序

随着社会的发展和人们生活水平的提高&#xff0c;特别是近年来&#xff0c;宠物快速进入人们的家中&#xff0c;成为人们生活中重要的娱乐内容之一&#xff0c;过去宠物只是贵族的娱乐&#xff0c;至今宠物在中国作为一种生活方式得到了广泛的认可&#xff0c;随着人们精神文明…

go学习一之go的初体验

go语言学习笔记 一、golang初体验: 1.简单体验案例&#xff1a; package main{ //把这个test.go归属到main import "fmt" //引入一个包 func main(){//输出hellofmt.Println("hello world")} }2.从案例学到的知识点&#xff1a; (1) go文件的后缀是.…

8路光栅尺磁栅尺编码器或16路高速DI脉冲信号转Modbus TCP网络模块 YL99-RJ45

特点&#xff1a; ● 光栅尺磁栅尺解码转换成标准Modbus TCP协议 ● 高速光栅尺磁栅尺4倍频计数&#xff0c;频率可达5MHz ● 模块可以输出5V的电源给光栅尺或传感器供电 ● 支持8个光栅尺同时计数&#xff0c;可识别正反转 ● 可以设置作为16路独立DI高速计数器 ● 可网…

Ensp+Wireshark+VirtualBox+WinPcap

软件下载 [名称]&#xff1a;Ensp及辅助程序 [大小]&#xff1a;830.65MB [语言]&#xff1a;Chinese [安装环境]&#xff1a;Win7/Win8/Win10 [下载链接]&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1KbypgxAGQy07ijSAj3SvsQ 提取码&#xff1a;ly88 软件介…

论文笔记:从不平衡数据流中学习的综述: 分类、挑战、实证研究和可重复的实验框架

0 摘要 论文&#xff1a;A survey on learning from imbalanced data streams: taxonomy, challenges, empirical study, and reproducible experimental framework 发表&#xff1a;2023年发表在Machine Learning上。 源代码&#xff1a;https://github.com/canoalberto/imba…

【自用】无法通过ESP32创建HomeAssistant实体问题解决(MQTT对ESP32创建实体请求无应答)

一、问题描述 1.使用 MQTTX 测试客户端能够创建实体 当通过 MQTTX 发送注册实体请求的时候&#xff0c;实体能够在 MQTT 服务器中注册成功。 2.使用 ESP32 无法创建实体 在ESP32中通过 publish() 函数发送注册请求的时候&#xff0c;并不会报任何错误&#xff0c;但 MQTT 服…

uCharts 运行微信小程序时,图表放在scroll-view中点击后不能正确获取点击的currentIndex一直为-1

图表在APP和H5中的点击位置是正常的,在微信小程序中会出现点击位置不对且有部分地方点击不到,最终我的解决方法如下。 1.查看包裹图表的元素中有没有元素开启了定位,可以去除定位属性试一试。 2.为微信平台的图表添加 isScrollView="true"属性。 解决方案: 添加 …

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(中)

目录 2.2 分仓、权限与依赖问题 2.3 基于 Git 进行多仓管理 Git submodule Git subtree Script/CMake Git-Repo Conan 本文来自 武让 极狐GitLab 高级解决方案架构师 &#x1f31f; 前一篇文章&#xff0c;作者介绍了嵌入式开发场景的代码管理特点与诉求&#xff0c;以及…

Redis下载与安装

文章目录 Redis简介下载&#xff0c;安装和配置&#xff08;cmd&#xff09;图形化工具 Redis 简介 下载&#xff0c;安装和配置&#xff08;cmd&#xff09; 开启redis服务 1.在解压出来的文件夹中打开cmd 2.输入 redis-server.exe redis.windows.conf即可开启服务 可以看到…

pgadmin4中的备份与恢复

一&#xff0c;postgresql 数据的备份与恢复 &#xff08;一&#xff09;数据库备份与恢复 1&#xff0c;备份 windows环境 1> dump 逻辑备份 1&#xff0c;用管理员身份打开power shell 2&#xff0c;切换到本机 postgresql 安装目录下的 bin 目录&#xff1a; PS C…

ui设计师简历自我评价(合集)

UI设计最新面试题及答案 1、说说你是怎么理解UI的? UI是最直观的把产品展示展现在用户面前的东西&#xff0c;是一个产品的脸面。人开始往往是先会先喜欢上美好的事物后&#xff0c;在去深究内在的东西的。 那么也就意味着一个产品的UI首先要做的好看&#xff0c;无论风格是…

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活

RedisDesktopManager 连接redis

redis查看是否启动成功 ps -ef | grep redis以上未启动成功 cd /usr/local/bin/ 切换根目录 sudo -i 开启服务端 ./redis-server /usr/local/redis/redis.conf 开启客户端 ./redis-cli

一款轻量级开发者工具,提高开发效率

Devkits Devkits 是一款轻量级桌面端应用&#xff0c;提供了一系列开发者工具&#xff0c;提高开发效率。 离线。类似的在线工具已经不少了&#xff0c;但是大多数都是在线的&#xff0c;网络不好的时候就很难用了。Devkits 提供了离线使用的功能&#xff0c;可以在没有网络的…

2023-8-23 合并集合

题目链接&#xff1a;合并集合 #include <iostream>using namespace std;const int N 100010;int n, m; int p[N];int find(int x) {if(p[x] ! x) p[x] find(p[x]);return p[x]; }int main() {cin >> n >> m;for(int i 1; i < n; i) p[i] i;while(m…

【Linux】临界资源和临界区

目录 一、临界资源 二、如何实现对临界资源的互斥访问 1、互斥量 2、信号量 3、临界区 三、临界区 四、进程进入临界区的调度原则 一、临界资源 概念&#xff1a;临界资源是一次仅允许一个进程使用的共享资源&#xff0c;如全局变量等。 二、如何实现对临界资源的互斥访问 …

Spring 自动装配机制详解

文章目录 一、手动装配二、自动装配1. XML 方式2. 注解方式 一、手动装配 首先知道 Spring 装配是干了件啥事&#xff1f;我的理解&#xff0c;它就是用来解决 bean 之间依赖关系的一个手段。 比如说我这里有一个 People 类和一个 Dog 类&#xff0c;People 依赖 Dog&#xff…