docker简述

devtools/2024/10/17 22:05:35/

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.ppmy.cn/devtools/125184.html

相关文章

虚拟现实(VR)与增强现实(AR):改变未来的科技

虚拟现实(VR)与增强现实(AR):改变未来的科技 虚拟现实(VR)和增强现实(AR)技术正在快速发展,并逐渐渗透到我们的日常生活中。从娱乐和游戏,到教育…

sass学习笔记(1.0)

1.使用变量 sass可以像声明变量那样进行使用,这样同样的样式,就可以使用相同的变量来提高复用。 语法为:$ 变量名 在界面中也可以正常的显示 当然了,变量之间也可以相互引用,比如下面 div{$_color: #d45387;$BgColo…

欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值

目前链上数据正处于迈向下一个爆发的重要时刻。 随着Web3行业发展,公链数量呈现爆发式的增长,链上积聚的财富效应,特别是由行业热点话题引领的链上交互行为爆发式增长带来了巨量的链上数据,这些数据构筑了一个行为透明但与物理世…

HTML DOM 节点

HTML DOM 节点 介绍 HTML DOM(文档对象模型)是HTML文档的编程接口。它将HTML文档表示为节点树,其中每个节点都是文档的一部分。HTML DOM节点包括元素节点、属性节点、文本节点等。本文将详细介绍HTML DOM节点的概念、类型和操作方法。 HTML DOM节点类型 元素节点 元素节…

C++20中头文件numbers的使用

<numbers>是C20中新增加的头文件&#xff0c;提供一组常量用于表示数学中的某些特殊值&#xff0c;此头文件是numeric库的一部分。包括&#xff1a; 1. 圆周率π:std::numbers::pi、std::numbers::pi_v<T> 2. 圆周率π的倒数&#xff1a;numbers::inv_pi、std::num…

nms_cuda详解

此篇为PyTorch 自定义算子&#xff1a;复现CPU和CUDA版的二维卷积的代码详解 这篇是为了展示setup在构建简单的cpp算子的使用 1.环境配置 整体结构如下图所示,架构和之前一样 2.nms.cpp nms的思路还是很简单的&#xff0c;和之前python的版本一致 python版本 #include "…

深度融合 AR 与 AI 、从 Web2 到 Web3,V3X 定义下一代智能眼镜

01 奇点尚未到来的智能眼镜市场 相对于智能手机、智能手表等设备&#xff0c;智能眼镜很显然是一个更为小众的市场。根据 IDC 数据显示&#xff0c;2023 年全球 AR 眼镜销量为 48 万台&#xff0c;智能眼镜销量为 101 万台。 智能眼镜本身并不是新风口&#xff0c;该赛道最早可…

蓝桥杯刷题--幸运数字

幸运数字 题目: 解析: 我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为0.然后一个幸运数字就是满足所有进制的哈沙德数之和.然后具体就是分为以下几个步骤 1. 我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数 2. 我们在main方法里面调用…