首页 > 其他分享 >docker基础展示-2

docker基础展示-2

时间:2023-07-02 17:11:21浏览次数:52  
标签:展示 com 基础 sunny master 镜像 docker root

13.Dockerfile-构建JAVA网站镜像

参考:https://blog.csdn.net/liukuan73/article/details/60880137

该章节难点:理解CMD和ENTRYPOINT指令的区别

CMD指令为ENTRYPOINT指令提供默认参数是基于镜像层次结构生效的,而不是基于是否在同个Dockerfile文件中。意思就是说,如果Dockerfile指定的基础镜像中是ENTRYPOINT指定的启动命令,则该Dockerfile中的CMD依然是为基础镜像中的ENTRYPOINT设置默认参数。

部署java项目

[root@master ~]# cd /root/dockfiles/tomcat

[root@master tomcat]# ls

apache-tomcat-8.5.40.tar.gz  Dockerfile  jdk-8u161-linux-x64.tar.gz  server.xml

[root@master tomcat]#

[root@master tomcat]# docker build -t tomcat:v1 -f Dockerfile .

[root@master tomcat]# docker images

REPOSITORY  TAG                 IMAGE ID            CREATED             SIZE

tomcat      v1                  1363e2e1856d        16 minutes ago      600 MB

 

[root@master ~]# mkdir –p /app/webapps/  

[root@master ~]# cd /app/webapps/

[root@master webapps]# ls

[root@master webapps]# mkdir ROOT

[root@master webapps]# echo "hello" >ROOT/index.html

[root@master tomcat]# docker run -itd --name=tomcat -p 8089:8080 -v /app/webapps/:/usr/local/apache-tomcat-8.5.40/webapps/ tomcat:v1

18436dcc627d2868726da7a5c334966aed3879cc033392220a2228c9cd259969

[root@master tomcat]# curl 192.168.19.129:8089

hello

 

测试java项目正常访问。

 

14.镜像仓库-官方Registry镜像仓库搭建与使用

搭建私有镜像仓库

私有私有仓库管理

Docker Hub公共镜像仓库使用

[root@master ~]# docker images save 该方法显然不适合批量保存镜像

 

搭建私有镜像仓库

Docker Hub 作为docker默认官方公共镜像,如果自己搭建私有镜像仓库,官方提供registry镜像,使得搭建私有仓库非常简单。

 

下载registry镜像并启动

[root@master ~]# docker pull registry

[root@master ~]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry    异常退出重启registry服务策略:restart

测试,查看镜像仓库所有镜像

[root@node1 ~]# curl 192.168.19.129:5000/v2/_catalog

{"repositories":["mysql","tomcat","tomcat-app"]}

[root@node1 ~]#

 

Docker pull获取的镜像地址https://hub.docker.com/search/?q=&type=image,从此处获取仓库镜像。

下载和推送镜像到私有仓库,需要处理https问题。

 

[root@node1 ~]# cat /etc/docker/daemon.json   配置私有仓库可信任

{

"registry-mirrors": ["http://hub-mirror.c.163.com"],

"insecure-registries":["192.168.19.129:5000"]

}

[root@node1 ~]# systemctl restart docker

[root@node1 ~]# docker pull 192.168.19.129:5000/tomcat:v1    下载镜像正常。

Status: Downloaded newer image for 192.168.19.129:5000/tomcat:v1

[root@node1 ~]# docker images

REPOSITORY         TAG                 IMAGE ID            CREATED             SIZE  192.168.19.129:5000/tomcat   v1   5a069ba3df4d    10 days ago    465 MB

[root@node1 ~]# curl 192.168.19.129:5000/v2/tomcat/tags/list

{"name":"tomcat","tags":["v1"]}

[root@node1 ~]# docker tag 192.168.19.129:5000/tomcat:v1 192.168.19.129:5000/tomcat:v2.0

[root@node1 ~]# docker push 192.168.19.129:5000/tomcat:v2.0   上传镜像

[root@node1 ~]# curl 192.168.19.129:5000/v2/tomcat/tags/list     列出镜像标签

{"name":"tomcat","tags":["v1","v2.0"]}

[root@node1 ~]# docker images

 

15.镜像仓库-Docker Hub公共镜像仓库使用

官方公共仓库,也可注册dockerhub账号,存储个人私有镜像。

地址:https://hub.docker.com/

Docker id: szsunny

Password::xxx

Email:[email protected]

(微信搜藏查看)浏览器登录之后,创建repository镜像,

 

 

创建之后,开始上传镜像。

[root@master ~]# docker login

Username: szsunny

Password:

Login Succeeded

[root@master ~]# docker tag busybox szsunny/busybox:v1

[root@master ~]# docker push szsunny/busybox:v1

浏览器登录,查看上传的镜像成功。

 

公共镜像源(地址在国外)比较缓慢,可自行决定是否使用。

 

16.企业级镜像仓库-Harbor介绍

Harbor是Vmware公司开源的企业级Docker registry项目,项目地址:https://github.com/goharbor/harbor

下载离线安装包:https://github.com/goharbor/harbor/releases

安装Docker

安装docker-compose

自签TLS证书:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

Harbor安装与配置:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

Docker主机访问Harbor

 

下载安装离线包

Harbor offline installer :离线安装

Harbor online installer: 在线安装,不建议使用,整个包比较大

 

两种环境部署方式,企业一般通过https部署

[root@node2 ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0.tgz

下载docker-compose:https://github.com/docker/compose/releases

硬件:

CPU、Mem、Disk

软件:

Python、Docker 、Compose、Openssl

网络:

HTTP、HTTPS

 

17.企业级镜像仓库-Harbor部署

[root@node2 ~]# docker info   安装docker

[root@node2 ~]# mv docker-compose-Linux-x86_64 docker-compose

[root@node2 ~]# chmod +x docker-compose

[root@node2 ~]# ./docker-compose version

[root@node2 ~]# mv docker-compose /usr/bin/        

[root@node2 ~]# docker-compose version    安装docker-compose

参考:https://github.com/docker/compose/releases/

docker-compose version 1.24.0-rc1, build 0f3d4dda

docker-py version: 3.7.0

CPython version: 3.6.8

OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

[root@node2 ~]# tar -xf harbor-offline-installer-v1.7.0.tgz

[root@node2 ~]# cd harbor

配置harbor地址,

hostname = reg.sunny.com

ui_url_protocol = https

no_proxy = 127.0.0.1,localhost,core,registry,reg.mydomain.com

ssl_cert = /root/harbor/ssl/reg.sunny.com.crt

ssl_cert_key = /root/harbor/ssl/reg.sunny.com.key

harbor_admin_password = 123456

email_identity =

email_server = smtp.163.com

email_server_port = 25

email_username = [email protected]

email_password = bxi3odtD8

email_from = [email protected]

email_ssl = false

email_insecure = false

配置邮件在用户重置密码时使用:https://blog.csdn.net/BigData_Mining/article/details/88300979

开始安装

[root@node2 harbor]# ./prepare

[root@node2 harbor]# ./install.sh

 

初次安装需要5分钟以上(下载很多harbor镜像组件)。

[root@node2 harbor]# docker-compose ps查看容器服务

https浏览器访问,

 

登录账号密码:admin  pass自定义

操作:

新建项目、创建用户。

忘记密码操作:收到邮件。

 

 

邮件配置正常,用户可收到重置密码邮件。

 

18.企业级镜像仓库-自签HTTPS证书

生成证书:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

[root@node2 ~]# tar -xf harbor-offline-installer-v1.7.0.tgz

[root@node2 ~]# cd harbor

[root@node2 harbor]# mkdir ssl

[root@node2 harbor]# cd ssl/

参考:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

A、获得证书授权

openssl req \

-subj "/C=CN/ST=GD/L=shenzhen/O=Estone/OU=Innopro/CN=sunny.cn" \

-newkey rsa:4096 -nodes -sha512 -keyout ca.key \

-x509 -days 3650 -out ca.cr -out ca.crt

 

B、获得服务器证书

假设自己的域名为reg.sunny.com

 

[root@node2 ssl]# openssl req \

>     -subj "/C=CN/ST=GD/L=shenzhen/O=Estone/OU=Innopro/CN=reg.sunny.com" \

>     -newkey rsa:4096 -nodes -sha512 -keyout reg.sunny.com.key \

>     -out reg.sunny.com.csr

C、生成证书签名请求:颁发证书

 

[root@node2 ssl]# openssl x509 -req -days 3650 \

>     -in reg.sunny.com.csr \

>     -CA ca.crt -CAkey ca.key -CAcreateserial \

>     -out reg.sunny.com.crt

需要使用到的crt、key。

[root@node2 ssl]# ls reg.sunny.com.

reg.sunny.com.crt  reg.sunny.com.csr  reg.sunny.com.key

 

19.企业级镜像仓库-Docker主机从Harbor上传下载镜像

客户端上传和下载

[root@master ~]# tail -1 /etc/hosts

192.168.19.131 node2 reg.sunny.com

[root@master ~]# mkdir -p /etc/docker/certs.d/reg.sunny.com

[root@master ~]# docker login reg.sunny.com 

 

[root@master ~]# scp [email protected]:/root/harbor/ssl/reg.sunny.com.crt /etc/docker/certs.d/reg.sunny.com/

[email protected]'s password:

reg.sunny.com.crt                         100% 1891     1.5MB/s   00:00   

[root@master ~]# docker login reg.sunny.com

Username: sunny

Password:

Login Succeeded

[root@master ~]#

[root@master ~]# docker tag nginx reg.sunny.com/test/nginx:v1

[root@master ~]# docker push reg.sunny.com/test/nginx:v1    推送成功,浏览器端查看镜像

The push refers to a repository [reg.sunny.com/test/nginx]

fc4c9f8e7dac: Pushed

912ed487215b: Pushed

5dacd731af1b: Pushed

v1: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948

[root@master ~]#

下载镜像,也需要先登录。

[root@master ~]# docker login reg.sunny.com -usunny -pSunny123

Login Succeeded

[root@master ~]#

[root@master ~]# docker rmi reg.sunny.com/test/nginx:v1

[root@master ~]# docker rmi nginx

下载镜像。

[root@master ~]# docker pull reg.sunny.com/test/nginx:v1

Trying to pull repository reg.sunny.com/test/nginx ...

v1: Pulling from reg.sunny.com/test/nginx

Digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790

Status: Downloaded newer image for reg.sunny.com/test/nginx:v1

[root@master ~]# docker images

自此,完成了harbor镜像上传和下载操作。

 

Harbor镜像清理?面试遇到问题

 

删除Harbor的UI中的存储库。这是软删除。您可以删除整个存储库或仅删除它的标签。软删除后,Harbour中不再管理存储库,但是存储库的文件仍然保留在Harbour的存储中,镜像文件还是保存在磁盘上。

 

使用注册表的垃圾回收(GC)删除存储库的实际文件。

 

使用脚本清理。

标签:展示,com,基础,sunny,master,镜像,docker,root
From: https://www.cnblogs.com/sunnyyangwang/p/17521012.html

相关文章

  • 【numpy基础】--数组索引
    数组索引是指在numpy数组中引用特定元素的方法。numpy的数组索引又称为fancyindexing,比其他编程语言的索引强大很多。1.选取数据numpy的索引除了像其他语言一样选择一个元素,还可以间隔着选取多个元素,也可以用任意的顺序选取元素。比如一维数组:arr=np.random.randint(0,10......
  • 八期day05-java基础
    1Java环境搭建#合伙人---》下次讲#java:做反编译,发现好多java代码看不太懂,有些加密算法,也不太好破---》接下来的时候,要学习java开发 -找到加密算法---》chatgpt,让它给你写---》转成python---》自己手动调#java编译型语言 -javase:java基础---》python中变量定义,函数,......
  • 八期day06-java基础2
    零python和java字节字符串比较0.1java字节数组和字符串相互转换//1字符串转字节数组v4="彭于晏"byte[]b=v4.getBytes();//默认utf8形式System.out.println(b);//输出对象形式,看不到字节数组System.out.println(Arrays.toString(b));//try{//......
  • Mysql基础篇(三)之多表查询
    一.多表关系一对多(多对一)多对一一对一1.一对多(1).案例:部门与员工的关系(2).关系:一个部门对应多个员工,一个员工对应一个部门(3).实现:在多的一方建立外建,指向一的一方的主键2.多对多(1).案例:学生与课程的关系(2).关系:一个学生可以选修多门课程,一门课程也......
  • 传奇开服技术基础十条处理办法110.42.2
    1:怎么添加GM,游戏管理员!答:在游戏版本路径中的-MirServerMir200EnvirAdminList.txt文本内,从这里增添需要重新启动,为了方便都在M2server中进行增添M2-查询-文件列表信息-管理员列表中进行增添,增添好了即时生效.人物在游戏里需要小退开始生效!2:假如增添删除商铺物品!答:3K引擎......
  • Excel基础_2023/7/2
    典型函数=SUM()=AVERAGE()=IF(条件,命令1,命令2)相对引用(默认),绝对引用(加$在对应行/列)单元格统计函数COUNTCOUNTACOUNTBLANKCOUNTIF(区域,要记录的标准)/COUNTIFS推荐对不熟的函数使用参数面板。比较符号:><>=<=<>文本查找-通配符:?代表一个字,*代表有内容(但被两个......
  • Excel基础_2023/7/1
    清洗数据网上爬取时,选择合适区域再excel处理,用PowerQuery可以:更改筛选标题、筛选合适项、删除异常项,然后导入新表格区域。简单改变单元格格式关于边框,可以调整颜色,也可以设置网格线(打印时网格线则需另选)可通过格式-其他格式进行设置有符号、颜色选项'+内容可使内容变文......
  • Excel基础_2023/6/30
    快速填充、提取、组合ctrl+enter(按规律/选中区域-原位填充)注意数据连续对齐快速可视化、分析条件格式,有色阶等比例显示迷你图三维地球录入数据输入操作从一开始就tab横行,则可enter直接转跳下一行首列(shift+tab可返回修改同行数据,不改路径。修改路径后,可重新由合适行tab......
  • Docker CLI docker container inspect 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Docker 安装私人NuGet服务
    Docker安装 NuGet服务(使用baget)使用root用户操作1、拉取官方的最新版本的镜像dockerpullloicsharma/baget 2、创建主机挂载配置目录nuget目录存放文件,删除重启容器不会丢失mkdir-p/opt/dockerdata/nuget3、创建baget配置文件vi /opt/dockerdata/nuget/baget.env......