docker简述

1.安装dockers,配置docker软件仓库

安装,可能需要开代理,这里我提前使用了下好的包安装

启动docker

systemctl enable --now docker

查看是否安装成功

2.简单命令

拉取镜像,也可以提前下载使用以下命令上传

docker load -i images-name(镜像包)

查看镜像

docker images

查看镜像信息

 保存镜像

#保存镜像
docker image save nginx:latest -o nginx-latest.tar.gz
docker image save nginx:latest nginx:1.26-alpine -o nginx.tag.gz
#保存所有镜像
docker save `docker images | awk 'NR>1{print $1":"$2}'` -o images.tar.gz

删除镜像

运行docker容器

查看运行的docker容器

停止和启动容器

杀死容器,删除容器

docker kill test
docker rm nginx #删除停止的容器
docker rm -f busybox #删除运行的容器
docker container prune -f #删除所有停止的容器

3.构建镜像

docker build -t example:v1 . #构建镜像

镜像优化方案

减少镜像层,使用一条run命令

多阶段构建,先编译构建,在直接编译

vim Dockerfile(命名自定,默认是这个,使用自定义名字需要指定)FROM nginx:v1 as build
ADD nginx-1.24.0.tar.gz /mnt
WORKDIR /mnt/nginx-1.23.3
RUN yum install -y gcc make pcre-devel openssl-devel && sed -i 's/CFLAGS="$CFLAGS 
-g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --with-http_ssl_module --
with-http_stub_status_module && make && make install && cd .. && rm -fr nginx1.23.3&& yum clean all
FROM nginx:v1
COPY --from=build /usr/local/nginx /usr/local/nginx
EXPOSE 80
VOLUME ["/usr/local/nginx/html"]
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

使用最精简构建,下载官方最小的镜像,然后使用多阶段镜像构建

4.搭建仓库,registry仓库

下载registry镜像,开启registry

docker pull registry
docker run -d -p 5000:5000 --restart=always --name test registry

docker ps 查看运行情况,上传镜像,给镜像打标签

 docker tag busybox:latest 172.25.254.100:5000/busybox:latest

提供加密服务,生成证书,这里我建立了当前路径下的certs,将证书和密钥建立到了certs下面,这里路径可按自我需求写

openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout certs/timinglee.org.key \
-addext "subjectAltName = DNS:reg.timinglee.org" \
-x509 -days 365 -out certs/timinglee.org.crt

编译启动registry,路径和上面放证书的路径一致

 docker run -d -p 443:443 --restart=always --name registry \
> --name registry -v /opt/registry:/var/lib/registry \
> -v /root/certs:/certs \
> -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
> -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/timinglee.org.crt \
> -e REGISTRY_HTTP_TLS_KEY=/certs/timinglee.org.key registry

给客户端生成证书

mkdir /etc/docker/certs.d/reg.timinglee.org/ -p #建立客户端的证书目录
cp /root/certs/timinglee.org.crt  /etc/docker/certs.d/reg.timinglee.org/ca.crt #将生成的证书写进去
systemctl restart docker #启动docker
docker push reg.timinglee.org/busybox:latest #拉取镜像#访问测试curl -k https://reg.timinglee.org/v2/_catalog

测试成功效果

配置harbor仓库

下载harbor压缩包并解压,切换到harbor目录,复制一份配置文件,编辑配置文件,将证书信息和主机信息以及密码改为自己的信息上去然后安装

tar zxf harbor-offline-installer-v2.5.4.tgz
cd harbor/
cp harbor.yml.tmpl harbor.ymlvim harbor.yml
hostname: reg.timinglee.org
certificate: /data/certs/timinglee.org.crt
private_key: /data/certs/timinglee.org.key
harbor_admin_password: lee# ./install.sh --with-chartmuseum

访问地址或者域名,需要解析,测试效果如下 

5.dockers的安全加固

dockers的默认隔离性,和操作系统共用,不安全

 

使用lxcfs增加隔离性

安装lxcfs

运行lxcfs

容器特权的限制

默认都允许

 

使用参数限制

6.dockers compose,查看配置和配置文件

docker compose管理命令

启动,删除,重启,开始,停止等

查看compose日志

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【gRPC】1—gRPC是什么

gRPC是什么 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 📖RPC专栏:https://b…

脉冲下跳沿提取电路

本例中的电路可将负脉冲转换为正脉冲。尽管这个任务看似简单,但负脉冲的幅度为-5V~-2V。按照不同应用要求,正脉冲也需要不同的脉冲宽度,而负脉冲是梯形的。脉冲必须先经过一个长距离的传输线才能到达某个控制设备。有多个电路可以解决这一问题…

jQuery——解决快速点击翻页的bug

本文分享到此结束,欢迎大家评论区相互讨论学习,下一篇继续分享jQuery中内置动画的学习。

谷歌AI大模型Gemini API快速入门及LangChain调用视频教程

1. 谷歌Gemini API KEY获取及AI Studio使用 要使用谷歌Gemini API,首先需要获取API密钥。以下是获取API密钥的步骤: 访问Google AI Studio: 打开浏览器,访问Google AI Studio。使用Google账号登录,若没有账号&#xf…

大数据ETL数据提取转换和加载处理

什么是 ETL? 提取转换加载(英语:Extract, transform, load,简称ETL),用来描述将资料从来源端经过抽取、转置、加载至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。 ETL&…

C++竞赛初阶—— 石头剪子布

题目内容 石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比…

Spring Cloud Netflix Zuul 网关详解及案例示范

1. 引言 在微服务架构中,API 网关作为服务间通信的入口,扮演着重要的角色。Netflix Zuul 是一个提供动态路由、监控、安全等功能的 API 网关服务器,它可以为微服务系统提供统一的入口,简化服务间的交互。在业务系统中&#xff0c…

【计网】【计网】从零开始学习http协议 ---理解http重定向和请求方法

去光荣地受伤, 去勇敢地痊愈自己。 --- 简嫃 《水问》--- 从零开始学习http协议 1 知识回顾2 认识网络重定向3 http请求方法3.1 http常见请求方法3.2 postman工具进行请求3.3 处理GET和POST参数 1 知识回顾 前面两篇文章中我们学习并实现了http协议下的请求与应…

Linux 命令 netstat 的 10 个基本用法

Netstat 简介 Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来…

行为设计模式 -观察者模式- JAVA

观察者模式 一.简介二. 案例2.1 抽象主题(Subject)2.2 具体主题(Concrete Subject)2.3 抽象观察者(Observer)2.4 具体观察者(Concrete Observer)2.5 测试 三. 结论3.1 优缺点3.2 使用…

STM32外设详解——ADC

来源:铁头山羊 基本概念 ①ADC是模数转换器的统称,stm32f103c8t6内部集成了2个12位主次逼近型ADC,外设名称为ADC1、ADC2。 ② 采样深度为12位意味着ADC可以将0~3.3V的模拟电压等比转换为0~4095的数字值(分割为2的12次方份&…

网 络 安 全

网络安全是指保护网络系统及其所存储或传输的数据免遭未经授权访问、使用、揭露、破坏、修改或破坏的实践和技术措施。网络安全涉及多个方面,包括但不限于以下几个方面: 1. 数据保护:确保数据在传输和存储过程中的完整性和保密性,…

银河麒麟V10安装ToDesk远程控制

银河麒麟V10安装ToDesk远程控制 ARM版本安装 1.下载arm的deb包 wget https://dl.todesk.com/linux/todesk_4.0.3_aarch64.deb2.安装 sudo apt-get install ./todesk_4.0.3_aarch64.deb3.启动todesk todesk

文献翻译用什么软件?新手建议收藏这5个

在学术研究的广阔天地里,语言障碍往往是科研人员不得不跨越的一道难关。 面对海量的外文文献,如何高效、准确地获取其中的信息,成为了许多学者关注的焦点。 想知道文献翻译器推荐哪一个?今天这篇文章为大家推荐5个优秀的文献翻译…

如何制作低代码开发的视频教程?

如何制作低代码开发的视频教程? 随着数字化转型的加速,越来越多的企业和组织开始采用低代码开发平台来加速应用程序的构建。对于许多开发者和业务人员来说,学习如何使用这些平台可以显著提高工作效率。因此,创建一份清晰、实用且…

02_InFluxDb

InFluxDb 初始化初始化流程 交互InFluxDbWebUI交互 数据模型行协议添加标签数据格式 数据类型空格索引 Flux语言 初始化 初始化流程 用户 密码 组织名称 Bucket—mysql里面的数据库概念 交互InFluxDb 暂用了8086端口.提供了 http api WebUI交互 略... 数据模型 这是mys…

无源有损耗导电介质的平面电磁波——复数介电常数带来复波数k(导致幅度衰减)和复波阻抗(带来磁场电场相位不同)

推导中以εμσ是实数为假设 注意在线性介质中J 0和σ等于0其实是一个条件,因为J σE 线性介质的麦克斯韦方程 线性介质无源无损耗条件下 线性介质无源有损耗导电介质下 无源有损耗的复数麦克斯韦方程组,只有方程二与无源无损耗的麦克斯韦方程组不同…

双十一选购攻略:2024年双十一有什么值得入手好物?

又到一年双11,还有很多持币观望的小伙伴,可能还没想要买什么,所以我就来啦,给大家参谋参谋,结合我生活中的好物使用经验,来跟大家做个分享,如果能给已经进入双11“买买买”节奏的你一些参考&…

java.lang.NoClassDefFoundError: kotlin/Result解决方案

问题 在控制窗口上虽然报错是找不到对应的class,但是呢在我们导入kotlin的后,还是报相同的异常,在网上查找了各种资料,都没有解决方案。 问题分析 在idea2021之后,kotlin都使用远程仓库(kotlinx-coeouti…

C语言 动态数据结构的C语言实现内存映像

C程序的内存映像 C程序中变量的内存分配方式  C程序中变量的内存分配方式  从静态存储区分配  全局变量和静态变量 C程序中变量的内存分配方式  从静态存储区分配  全局变量和静态变量  在栈上分配  存放函数参数值,局部变量值等  …