分享好友 最新动态首页 最新动态分类 切换频道
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 命令


最新文章
深圳进出口规模首次迈上4万亿台阶,贡献全国约33%增量
12月11日至12日召开的中央经济工作会议提出,扩大高水平对外开放,稳外贸、稳外资。12月13日,深圳召开“兴小微 助兴贸”数字普惠金融服务对接会,记者在会上获悉,今年前11个月,深圳外贸取得历史性突破,进出口规模首次迈上4万亿元台阶,
手机怎么提取页面文字内容
这是最简单直接的方法之一。当我们在手机上浏览某个网页时,如果想要提取其中的文字内容,只需要长按想要复制的文字区域,然后选择复制。接着,打开一个文字编辑器或者笔记应用,再长按粘贴即可将复制的文字粘贴到编辑器中。这种方法简单快
魏则西事件后,百度开始直接投资医疗公司?
花朵财经观察出品编辑 | 铎子“生病了,腾讯员工就用丁香医生,阿里的会用阿里健康,而百度的员工一般会选择辞职。”提起百度医疗,有着一段沉重的往事。医疗竞价排名乱象引争议2016年4月,魏则西的父亲在网上发布消息称:“在与病魔抗争两
高清美女生成神器:用AI绘制你的完美写真
4. Sohu Simple AI Sohu Simple AI 作为一款新兴的AI生成工具,其特色在于功能丰富且操作简单。用户只需输入简单的指令或选择模型,就可以一键生成超高质量的美女写真。它内置丰富的风格选项,甚至可以生成具有气氛感的场景。对于新手用户
面向开发者的LLM入门教程系列之提示词工程(2)
对于我们大部分的用户来说,从头到尾的学习、开发、训练LLM不太现实,一是学习成本很高,二是经济成本也很高。但是我们可以学习怎么使用LLM来提高我们的生产力,以及基于LLM来开发我们自己的应用。在学习中我们可
途胜L降价14万,动力强劲,性能媲美丰田荣放,性价比高
市场行情波动,豪车价格跌跌不休,合资品牌的价格战也打得如火如荼。最近,一向以高品质著称的北京现代,居然放出了一记"杀手锏"——途胜L惊现史上最低价,从26万直接跳水至12万!这个价格让不少准备购买丰田荣放、本田CR-V的消费者都犹
综合5项百度大脑AI技术,快速构建智能交通方案
一、整体方案:思路:整合百度AI功能,通过百度AI解决、优化在公交运行过程中遇到的运营、管理、安全等方面的问题。具体如下:安全方面:通过驾驶员检测+语音合成,对驾驶员状态进行实时检测,跟踪,告警。通过人流量统计对车内人数进行跟
简短链接生成
【虾果】免费社群营销短链接生成器,是为社群营销人员量身定制的高效推广工具,不仅可以缩短美化推广链接,提高点击率的同时,还不易引起反感,不容易被删除,也能够在QQ、微信等生态中完美兼容,短链接生成器完全免费,大家可以点击上方生
谷歌推出Jules:全新AI助手助力开发者高效修复代码错误
在人工智能技术迅速发展的潮流中,谷歌近日正式推出了一款新工具,名为实验性AI代码助手Jules。这一创新工具的发布与公司最新的Gemini 2.0 AI模型相辅相成,旨在显著提升开发者在Python和Java环境中的工作效率,特别是在GitHub工作流中的应
高级WordPress SEO插件 Rank Math使用教程(2023年新版)
Rank Math是和Yoast SEO、All in One SEO Pack一样,都是WordPress SEO插件,下载量排名第三,非常有希望排第一去,奶爸建站笔记2021年时给大家介绍过这款插件的使用方法,现在2023年插件有了一些变化,所以对 Rank Math使用教程 做一个内
相关文章
推荐文章
发表评论
0评