做一个企业网站设计,作品集模板下载免费,黑猫会活动策划网站,seo网站推广招聘docker通用技术介绍
1.docker介绍
1.1 基本概念
docker是一个开源的容器化平台#xff0c;用于快速构建、打包、部署和运行应用程序。它通过容器化技术将应用及其依赖环境#xff08;如代码、库、系统工具等#xff09;打包成一个标准化、轻量级的独立单元#xff0c;实…docker通用技术介绍
1.docker介绍
1.1 基本概念
docker是一个开源的容器化平台用于快速构建、打包、部署和运行应用程序。它通过容器化技术将应用及其依赖环境如代码、库、系统工具等打包成一个标准化、轻量级的独立单元实现跨环境的一致性运行。
docker与容器容器是一种轻量级虚拟化技术docker是创建和管理容器的工具。
1.2 docker的优势
1.环境一致性开发、测试、生产环境使用相同镜像避免“在我机器上能跑”的问题。
2.快速部署秒级启动支持自动化扩缩容结合K8S。
3.资源高效无需模拟完整操作系统节省计算资源。
4.隔离性应用运行在独立沙箱避免依赖冲突。
1.3 docker与虚拟机对比
docker虚拟机虚拟化层级操作系统级共享主机内核硬件级通过Hypervisor辅助启动速度秒级分钟级资源占用低MB级内存高GB级内存隔离性进程级隔离通过namespace和cgroups硬件级隔离完全独立的操作系统安全性共享内核存在潜在攻击面完全隔离虚拟机漏洞不影响宿主机镜像大小镜像分层复用MB级包含完整OSGB级应用场景云原生和微服务、快速部署强隔离需求如安全敏感应用
2.安装配置
yum install docker-ce
systemctl enable docker;systemctl start docker#配置docker源
echo x.x.x.x socp.io /etc/hostscat /etc/docker/daemon.jsonEOF
{live-restore: true,insecure-registries:[socp.io], #镜像仓库#graph: /mnt/data01/docker, #存储路径log-driver: json-file, #默认日志驱动log-opts: {max-size: 150m,max-file: 10}
}
EOFsystemctl restart docker3.镜像管理
docker镜像是一个分层存储的文件系统每一层都是只读的并且可以被多个镜像共享。
docker images
docker pull image
docker pull socp.io/grafana/grafana:8.3.11
docker push image
docker rmi image1.overlay或overlay2是docker默认的联合文件系统unionFS驱动用于管理容器和镜像的分层存储。
它通过将多个只读层镜像层和一个可写层容器层合并为容器提供统一的文件系统视图。当启动容器时docker会基于镜像的只读层创建一个可写层overlay挂载点容器内的所有文件修改都发生在这一层。
作用分层存储、写时复制copy-on-write
2.shm共享内存
shm是linux的共享内存shared memory文件系统类型为tmpfs基于内存的临时存储。docker默认挂载一个64MB的/dev/shm共享内存分区用于进程间通信或某些依赖共享内存的应用。
4.容器管理
docker run -d \
-p 3000:3000 \
--restartunless-stopped \
socp.io/grafana/grafana:8.3.11docker stop id
docker exec -it id cmd
docker rm id5.docker网络
docker提供了多种网络驱动模式支持灵活的网络配置满足不同场景的需求。每个容器拥有独立的网络命名空间隔离网络栈IP、端口、路由表等。
实际应用中需结合安全策略如网络隔离、最小权限和性能需求如驱动选择进行配置。
docker network ls
docker network inspect id5.1 bridge网络默认
默认创建一个名为docker0的虚拟网桥容器通过veth对连接到网桥。容器分配私有IP172.17.0.0/16宿主机通过NAT与外部通信。
适用于单机环境下容器间通信或需要对外暴露服务的应用如web服务器。
5.2 host网络
容器直接共享宿主机的网络命名空间使用宿主机IP和端口。无NAT或虚拟网桥性能接近原生。
适用于需要极致网络性能的应用。
5.3 overlay网络
用于跨主机的容器通信。基于vxlan等隧道技术封装容器流量并通过物理网络传输。
常用于微服务集群、K8S等容器编排平台。
5.4 none网络
容器不配置任何网络接口仅保留lo回环地址。
完全隔离适用于极端安全场景或自定义网络配置。
6.docker数据管理
数据卷volume是实现持久化存储的主要方式它允许容器与宿主机之间共享数据并确保数据在容器删除后依然保留。默认存储在/var/lib/docker/volumes/
docker volume create name #创建数据卷
docker volume ls #列出数据卷
docker volume inspect name #查看数据卷信息
docker volume rm name #删除数据卷docker volume create grafana-data
docker run -d \
-p 3001:3000 \
--restartunless-stopped \
-v grafana-data:/var/lib/grafana/ \
socp.io/grafana/grafana:8.3.11除了数据卷还可以直接将宿主机的目录挂载到容器绑定挂载路径由用户指定
mkdir -p /test/grafana/data
chmod -R 777 /test/grafana/data-v /test/grafana/data:/var/lib/grafana/7.日志与监控
docker logs id -f --tail 50 #查看日志
docker stats #实时资源监控
docker top id #查看进程树
docker inspect id #查看容器信息docker cp container:/path/in/container /path/on/host #在容器和宿主机之间复制文件docker日志路径/var/lib/docker/containers/
内部文件路径/var/lib/docker/overlay2/
启动命令Entrypointdocker system df -v #查看docker磁盘使用情况
docker system prune #清理未使用的资源
docker system info #查看docker系统信息
docker system events #监控事件日志常见问题
1.区分容器进程or宿主机进程
#检查父进程链
pstree -aps pid#docker进程会在cgroup中标记容器ID或docker相关路径
cat /proc/pid/cgroup
培训题目
1.如何查看docker配置文件
2.如何查看docker容器最新日志
3.如何查看某docker容器占用资源大小
4.给出一个进程号如何判断该进程是否为容器内部进程
5.如何清理未使用的docker资源
6.请安装docker并配置镜像仓库地址为socp.io容器日志驱动为json-file轮转日志文件单个最大10MB保留5个副本。
7.启动一个名为grafana的容器要求后台运行映射宿主机3000端口到容器3000端口挂载宿主机目录/test/grafana/data到容器/var/lib/grafana/持久化存储设置容器为自启。容器正常启动后导出日志到/root目录下。