分享好友 最新动态首页 最新动态分类 切换频道
01.docker安装、配置、常用命令、dockerfile、镜像上传下载和Harbor仓库搭建
2024-12-26 22:34
 
 
 

若有报错编辑报错文件添加这个

01.docker安装、配置、常用命令、dockerfile、镜像上传下载和Harbor仓库搭建

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

如果想使用/etc/docker/daemon.json管理docker daemon,默认情况下,/etc/docker目录中并没有daemon.json
文件,添加后会导致docker daemon无法启动,在添加daemon.json文件之前,请先修改如下文件内容

 
 
 
 

添加该文件

 

查看看、重启服务

 
 
 
 
 
 

latest表示版本

 
 
 
 
 
 
 
 
 
 
 

安装的时候有报错:因为是centos8,和语言环境原因

 
 

在执行安装httpd

 
 
 
 
 
 
 
 

方法一 容器内部查看

 

方法二 审查容器

 

方法三 在容器外执行容器内命令

 

查看运行中的容器

 
 
 
 
 

笔记本访问

 
 

5.6.1创建存储目录

 

5.6.2运行容器并挂载上述目录

 

5.6.3运行在容器中的http服务,使用docker host的/web目录中的网页文件,并能够在doker host上进行修改,修改后立即生效。

 
 

5.6.4同步容器与docker host时间

 

方法一在创建的时候

 

方法二复制主机文件到容器

 

5.6.5在容器外执行容器内命令

 

5.6.6 容器间互联(–link)

第一步:创建被依赖容器

 

第二步:创建依赖于源容器的容器

 

停止并新建容器,用于抢占c202的IP

 

启动c202及c203

 
 

容器与镜像之间的关系
docker client 向docker daemon发起创建容器的请求
docker daemon查找有无客户端需要的镜像
如无,则到容器的镜像仓库中下载需要的镜像
拿到容器镜像后,启动容器

6.1.1打包操作系统的根目录

 

6.1.2把获取的根打包文件导入Docker Host中

 

6.1.3使用基础镜像启动容器

 
 

6.2.1使用commit提交镜像

在基础镜像运行的容器中安装应用,此例使用httpd

 

使用commit命令对正在运行的容器提交为一个应用镜像

 
 

使用应用镜像

 

6.2.2使用Dockerfile创建应用镜像

Dockfile原理

在Dockerfile定义所要执行的命令,使用docker build创建镜像,过程中会按照Dockerfile所定义的内容打开临时性容
器(使用docker commit进行提交),把Dockerfile文件中的命令全部执行完成,就得到了一个容器应用镜像。
执行命令越多,最终得到的容器应用镜像越大,所以要做优化

Dockerfile关键字

  • FROM(指定基础/image
  • MAINTAINER(用来指定镜像创建者信息
  • RUN (运行命令)
  • CMD(设置container启动时执行的操作
  • ENTRYPOINT(设置container启动时执行的操作
  • USER(设置container容器的用户
  • EXPOSE(指定容器需要映射到宿主机器的端口
  • ENV(用于设置环境变量
  • ADD(从src复制文件到container的dest路径
  • VOLUME(指定挂载点
  • WORKDIR(切换目录
6.2.2.1Dockerfile应用案例
1、通过Dockerfile创建一个可以在启动容器时就直接启动httpd应用的镜像

步骤

  • 创建一个目录,用于存储Dockerfile所使用的文件

  • 在此目录中创建Dockerfile文件及制作镜像所使用到的文件

  • 在此此目录中使用docker build创建镜像(读取Dockerfile文件)

  • 使用创建的镜像启动容器

思考

  1. 基础镜像是谁?centos7u6
  2. 安装httpd
  3. yum -y install httpd
  4. 安装完成后如何启动httpd? 编写一个把httpd启动的脚本文件
  5. 把httpd放在前端执行还是后端执行?前端
  6. 暴露端口?tcp80
  7. 添加一个测试文件,用于验证httpd是否可用

步骤
1.创建目录

 

2.进入目录并创建用于启动httpd的脚本文件

 

使用docker build创建镜像,注意命令最后有一个点,点表示当前目录

 

使用上述创建的应用容器启动容器

 

验证容器及httpd是否可用

在容器查看IP

 

替代原网站内容案例

 
2、把nginx应用容器化

要求
1、通过基础镜像做nginx应用镜像
2、使用nginx应用镜像启动容器时,nginx要求启动
3、验证nginx服务是否启动

步骤
1、使用哪一个基础 centos:latest
2、需要使用epel YUM源
3、安装nginx
4、修改nginx配置文件,主要用于关闭daemon后台运行
5、验证使用的测试页面

创建目录

 

创建测试文件

 
 

启动容器验证nginx服务是否自动开启

 

6.2.3容器镜像在docker host存储位置

从图中可以看出除了最上面的一层为读写层之外,下面的其他的层都是只读的镜像层,并且除了最下面的一层外,其
他的层都有会有一个指针指向自己下面的一层镜像。

Docker 的容器镜像和容器本身的数据都存放在服务器的 /var/lib/docker/ 这个路径下。不过不同的linux发行版存储
方式上有差别,比如,在ubuntu发行版上存储方式为AUFS,CentOS发行版上的存储方式为Overlay或Overlay2。

Overlay及Overlay2原理

OverlayFS将单个Linux主机上的两个目录合并成一个目录。这些目录被称为层,统一过程被称为联合挂载。
OverlayFS底层目录称为lowerdir, 高层目录称为upperdir。合并统一视图称为merged。当需要修改一个文件时
使用CoW将文件从只读的Lower复制到可写的Upper进行修改,结果也保存在Upper层。在Docker中,底下的只读层
就是/image,可写层就是Container。
overlay2是overlay的改进版,只支持4.0以上内核添加了Multiple lower layers in overlayfs的特性,所以overlay2可
以直接造成muitiple lower layers不用像overlay一样要通过硬链接的方式(最大128层) centos的话支持3.10.0-514及
以上内核版本也有此特性,所以消耗更少的inode

6.3.1创建自己的仓库

命令行登录docker报错

 

执行以下命令

 

6.3.2镜像上传,下载

给需要上传到公有仓库的容器镜像打标记

 
 

上传成功

下载

 

6.3.3配置镜像加速器

永久配置方法

第一步:修改/usr/lib/systemd/system/docker.service

 

第二步:在/etc/docker/daemon.json,改了之后有点慢啊

 

第三步:重启docker daemon

 

第四步:验证加速器是否可用

 
 

作用

在局域内使用
方便与其它系统进行集成
上传下载大镜像时

 

创建用于挂载至registry镜像启动的仓库中,便于容器镜像持久保存

 

启动容器获取镜像仓库

 

验证是否用可

 

修改daemon.json

 

#在其它主机中使用此镜像仓库
#第一步修改:/usr/lib/systemd/system/docker.service

 

#第二步创建:/etc/docker/daemon.json
#添加内容: “insecure-registries”: [“http://192.168.12.22:5000”]
#第三步:重启 systemctl daemon-reload;systemctl restart docker
#第四步:下载容器镜像
docker pull 192.168.12.22:5000/centos:v1

7.2.1添加用户

 

entrypoint:入口点

有报错终止

 
 

7.3.1工具准备

1.使用docker-compose工具进行启动
2.准备安装docker-compose有工具-pip
3.pip类似于yum,用于批量安装python模块及解决python模块依赖

pip工具准备

 

docker-compose工具准备

 

安装失败一直报错

执行以下

 

在执行安装

 

7.3.2获取harbor

解压

 

启动安装

 

访问:admin/123456

http://192.168.12.22/harbor/sign-in

新建项目

7.3.2.1镜像上传下载操作

在docker宿主机配置非https连接,因为docker用https通讯,所以还需要做证书,太麻烦。配置"insecure-registries": [“harbor服务器IP”]来使用http通讯

 

在docker宿主机登下载一个测试镜像,并tag成 harborIP/项目名/镜像名:TAG

 
7.3.2.2登陆服务器,并push上传镜像

登录有报错

 

docker-compose ps查看有挂掉的

 

重启服务解决

 

登录成功

 

push镜像

 
7.3.2.3浏览器界面验证

docker宿主机想要pull上传的镜像,可以这样做

删除镜像再重新从harbor仓库上下载

 

下载,可以复制pull 命令


最新文章
招聘海外广告优化师
招海外广告投放(赤子城广州分)12-20K1、负责海外社交产品在Facebook/Google/Tiktok等及网盟等广告渠道的账户搭建,用户定位,数据监控及分析,优化广告数据,对广告效果负责2、制定海外社交产品项目整体的投放策略,负责素材方向及预算把控
哥普顿热水器快速售后24小时人工400-(问题解决) - 生活 - 百科知识-蓝心网
哥普顿热水器售后24小时维修服务热线:400-658-8618。哥普顿热水器全市各区售后服务点热线号码。☎:400-658-8618哥普顿热水器售后服务,秉承“诚信为本、客户至上”的服务态度和“以客户为中心”的服务指导思想,不仅真诚地为用户提供先进
爬虫大全:从零开始学习爬虫的基础知识,小白也能学
爬虫的实现原理其实很简单,就是模拟浏览器发送请求、获取响应、解析HTML代码、保存数据的过程。具体来说,可以分为以下几个步骤:我们在浏览器里输入网址访问网页时,其实就是在向服务器发送一条请求。在爬虫中&#
谷歌账号购买 谷歌邮箱批发 24小时自动发货
在当今数字化时代,谷歌账户(Google Account)已成为用户进入互联网世界的重要工具。无论是使用Gmail进行日常通信,还是通过YouTube获取丰富的娱乐内容,谷歌账户的影响力无处不在。对于希望在海外市场拓展业务或个人用户而言,购买谷歌账
网页转二维码:简单实用的在线工具
在如今的信息时代,二维码已经成为人们生活中不可或缺的一部分。二维码可以承载大量的信息,并且可以通过扫描进行快速的读取。在网页设计和推广中,将网页转为二维码是一项非常重要的工作。本文将介绍一种简单实用的在线工具,帮助用户将网
水排的汉语大词典
水排的汉语大词典是:古代一种利用水力推动革囊鼓风的冶铁装置。《三国志·魏志·韩暨传》:“旧时冶,作马排,每一熟石用马百匹;更作人排,又费功力;暨乃因长流为水排,计其利益,三倍于前。”明徐光启《农政全书》卷十八:“水排,韦囊
PyTorch深度学习模型训练加速指南2021
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:LORENZ KUHN 编译:ronghuaiyang导读简要介绍在PyTorch中加速深度学习模型训练的一些最小改动、影响最大的方法。我既喜欢效率又喜欢ML,所
网站怎么优化电池推荐
优化您的网站以推荐电池产品涉及几个方面,包括SEO(搜索引擎优化)、用户体验和内容策略。以下是一些关键步骤: 1. 关键词和SEO优化- 关键词研究: 使用工具如Google Keyword Planner、Ahrefs或SEMrush来识别与电池相关的高搜索量关键词,
虾皮店铺转让多少钱?如何转让?
现在很多卖家选择在跨境平台虾皮上注册开店,但是由于平台上的店铺是非常激烈的,很多卖家无法继续将店铺经营下去,就会想要将店铺进行转让,那么虾皮店铺转让是多少钱了?shopee店铺转让价格并不是一定的,主要还是看店铺的运营情况。一般
超高清美女写真,这款AI工具教你一键生成心仪形象!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字时代,许多人希望通过高科技手段来实现艺术创作,而AI的崛起让这一切变得轻而易举
相关文章
推荐文章
发表评论
0评