![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Docker
文章平均质量分 80
Docker
MyySophia
工作只是你的权利,而只有你的行为才能为你赢得尊重
展开
-
为什么 Kubernetes 要替换 Docker?
今天的 Kubernetes 已经是非常成熟的项目,它的关注点也逐渐从提供更完善的功能转变到提供更好的扩展性,这样才能满足不同场景和不同公司定制化的业务需求。Kubernetes 在过去因为 Docker 的热门而选择 Docker,而在今天又因为高昂的维护成本而放弃 Docker,我们能够从这个过程中体会到容器领域的发展和进步。转载 2023-02-21 08:45:00 · 315 阅读 · 0 评论 -
Docker实战
目录。原创 2023-02-09 14:50:03 · 395 阅读 · 0 评论 -
为什么bitnami 安装的软件进入容器,用户名都是I have no name
可以看到输出,current_user 处会显示主机当前用户的名字,这解决了主机用户对挂载的卷没有权限的问题。主机当前目录出现了容器内创建的 tmp.txt,但是其权限、用户和组均是 root,其他用户不可写。除了用户名显示问题还存在一个问题,在绑定挂载中如果没有挂载的目录容器没有权限写入内容。,这是因为我们通过 --user 参数指定了容器内部的用户 id,这样容器运行过程往 /project 写的临时文件都会出现在主机上。在k8中容器默认好像是以uid=1001启动的,可以修改该uid。原创 2023-02-10 14:00:00 · 3346 阅读 · 0 评论 -
优化redis key 迁移程序(云原生版本)
其实这个Dockerfile 可以使用git来管理, 如果有新的index 需要同步,直接在git提交需要迁移的index文件触发CICD,(continuous integration continuous deliver) ,将build好的镜像推送到镜像仓库.比如你宿主机挂载的文件目录是 root 的,而 docker 容器中 python应用程序的默认的用户,id 和 group 都是 1000(官方容器默认的值),这种情况在容器中就无法正常写入文件到宿主机。11个线程并行大约1mins。原创 2022-09-19 11:20:23 · 220 阅读 · 0 评论 -
如何确认docker 和 宿主机上 veth 设备的关系?
docker 和 宿主机上 veth 设备的关系没有命令可以直接查到。不过可以进入容器可以看到。如果有个脚本能看到就好太多,docker 后续应该在docker ps加入一个类似的功能。传统方式: 1、docker exec 进入容器内部 2、宿主机上执行: ip a自动化方式:...原创 2022-07-09 22:54:32 · 691 阅读 · 0 评论 -
Linux iptables是什么?iptables和docker的关系?
iptables是Linux系统中用来配置防火墙的命令。四表:filter(用于过滤) nat(用于 NAT) mangle(用于修改分组数据) raw(用于原始数据包)最常用的是filter 和 nat。对应下图中的绿色块。五链:PREROUTING:用于路由判断前所执行的规则,比如,对接收到的数据包进行 DNAT。 POSTROUTING:用于路由判断后所执行的规则,比如,对发送或转发的数据包进行 SNAT 或 MASQUERADE。 OUTPUT: 类似于 PREROU..原创 2022-04-16 00:06:23 · 4078 阅读 · 0 评论 -
Docker高级网络实践
Docker中libnetwork提供的4种驱动,它们各有千秋,但实际上每一种方式都有一定的局限性。假设需要运营一个数据中心的网络,我们有许多宿主机,每台宿主机上运行了数百个甚至上千个Docker容器,使用4种网络驱动的具体情况如下。❏ 使用host驱动可以让容器与宿主机共用同一个网络栈,这么做看似解决了网络问题,可实际上并未使用network namespace的隔离,缺乏安全性。❏ 使用Docker默认的bridge驱动,容器没有对外IP,只能通过NAT来实现对外通信。这种方式不能解决跨主机容器原创 2022-04-15 21:23:17 · 1246 阅读 · 0 评论 -
docker网络之网络模型
网络模式docker默认使用桥接模式网络模式 配置 说明 bridge模式 --net=bridge 默认值,在Docker网桥docker0上为容器创建新的网络 栈 none模式 --net=none 不配置网络,用户可以稍后进入容器,自行配置 container模 式 -- net=container:name/id 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多原创 2022-04-15 13:50:43 · 1131 阅读 · 0 评论 -
如何下载google和redhat的镜像?
目录背景解决方案:镜像加速器解决方案:用魔法打败魔法最后背景CNCF 项目是google发起的,所以一些新的镜像都在google的镜像中,阿里云还没同步过来。例如安装CEPH所需要的镜像。目前常用的 Docker Registry 公开服务有: docker.io:Docker Hub 官方镜像仓库,也是 Docker 默认的仓库 gcr.io、k8s.gcr.io:谷歌镜像仓库 quay.io:Red Hat 镜像仓库 ghcr...转载 2022-03-29 14:08:12 · 778 阅读 · 0 评论 -
Docker image设计与Linux哲学的关系
最近在阅读Linux 系统编程手册。重读了虚拟内存一章,突然发现虚拟内存的设计思想和docker images layer设计思想有异曲同工之妙。Linux: linux中的共享内存使用场景1、执行同一程序的多个进程,可共享一份(只读的)程序代码副本。当多个程序执行相同的程序文件(或加载相同的共享库)时,会隐式地实现这一类型的共享。这不就是docker 设计镜像的思路吗? 共享基础镜像。2、进程可以使用 shmget()和 mmap()系统调用显式地请求与其他进程共享内存区。这么做是出于原创 2022-03-23 16:12:05 · 1339 阅读 · 0 评论 -
宿主机上docker0 Linux 网桥设备是怎么来的?
在默认安装情况下, Docker 会在宿主机上创建一个名为 docker0 的 Linux 网桥设备。该网桥设备拥有一个私有网络地址及其所属子网。分配给 docker0 网桥的子网地址为172.[17-31].42.1/16 10.[0-255].42.1/16 192.168.[42-44].1/24中第一个没有被占用的子网地址。因此,很多时候你的 docker0 网桥设备的地址都是 172.17.42.1。所有容器都会连接到该网桥设备上,并从中分配一个位于子网 172.17.42.0..原创 2022-03-13 17:25:24 · 2252 阅读 · 0 评论 -
上传镜像到DockerHub
如果本地build的镜像需要共享的时候,就需要把镜像推送到镜像仓库,供其他人下载使用。dockerHub就是这么一个东西。你可以将你的镜像设置为私有或者公有。上传步骤1、登录到dockerhubdocker 提供了客户端命令可以登录[root@hadoop100 ~]#docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker原创 2022-03-10 14:23:49 · 1066 阅读 · 0 评论 -
安装Kubernetes集群
目录1、K8s是什么2、架构1、工作方式2、组件架构1、控制平面组件(Control Plane Components)2、Node 组件3、形象化理解各组件的意义3、kubeadm创建集群1、centos下安装docker1、移除以前docker相关包2、配置yum源3、安装docker4、启动5、配置加速6、查看阿里云的镜像加速器1、安装kubeadm1、基础环境2、安装kubelet、kubeadm、kubectl2原创 2022-03-09 08:48:31 · 1724 阅读 · 0 评论 -
docker build stress命令
一、简介二、创建一个ubuntu image[root@iZ2vceej7yes1abpm7yec2Z ~]# docker run -it ubuntuUnable to find image 'ubuntu:latest' locallylatest: Pulling from library/ubuntu6a5697faee43: Pull complete ba13d3bc422b: Pull complete a254829d9e55: Pull complete Di.原创 2020-11-10 23:23:04 · 644 阅读 · 0 评论 -
docker 启动一个mysql服务 & mysql忘记密码如何处理?
这种用户密码加密方式是可以用过查看mysql.idb 文件查找mysql_native 来定位密码,然后再md5解密网站进行解密,简单的密码可以直接解析,复杂可能需要密码字典表。第二种: 如果密码的加密方式是sha2,那是无法破解的,mysql对密码进行了加盐操作,加密的时候会使用随机数进行加密,随机数是多少你是不知道的。mysql登录命令 mysql -uroot -p 和mysql -u root -p 有什么区别。可以,mysql提供了--skip-grant-tables 来跳过权限检查。原创 2020-11-19 17:40:03 · 1704 阅读 · 0 评论 -
docker文件存储驱动:AUFS 文件系统原理及生产环境的最佳配置
什么是联合文件系统联合文件系统(Union File System,Unionfs)是一种分层的轻量级文件系统,它可以把多个目录内容联合挂载到同一目录下,从而形成一个单一的文件系统,这种特性可以让使用者像是使用一个目录一样使用联合文件系统。那联合文件系统对于 Docker 是一个怎样的存在呢?它可以说是 Docker 镜像和容器的基础,因为它可以使 Docker 可以把镜像做成分层的结构,从而使得镜像的每一层可以被共享。例如两个业务镜像都是基于 CentOS 7 镜像构建的,那么这两个业务镜像原创 2021-05-07 22:45:42 · 561 阅读 · 0 评论 -
DevOps:容器化后如何通过 DevOps 提高协作效能?
提到 DevOps 相信很多人并不陌生,DevOps 作为一个热门的概念,近几年被提及的频率也越来越高。有些人说它是一种方法论,有些人说它是一堆工具,有些人说它是企业的一种管理模式。那么,DevOps 究竟是什么呢?Docker 在 DevOps 中又扮演了什么角色呢?今天,我们就来详细聊聊这个话题。DevOps 的前生今世1964 年,世界上的第一台计算机诞生,那时的计算机主要用于军事领域。计算机的运行离不开程序,那时负责编程的人员被称之为“程序员”。由于那时的程序比较简单,很多工作可以一个人完成,原创 2021-11-04 18:00:00 · 493 阅读 · 0 评论 -
如何使 Docker 和 Kubernetes 结合发挥容器的最大价值?
Docker 虽然在容器领域有着不可撼动的地位,然而在容器的编排领域,却有着另外一个事实标准,那就是 Kubernetes。本课时,我就带你一起来认识下 Kubernetes。Kubernetes 的前生今世说起 Kubernetes,这一切还得从云计算这个词说起,云计算这个概念是 2006 年由 Google 提起的,近些年被提及的频率也越来越高。云计算从起初的概念演变为现在的 AWS、阿里云等实实在在的云产品(主要是虚拟机和相关的网络、存储服务),可见已经变得非常成熟和稳定。正当大家以为云计算原创 2021-11-04 21:00:00 · 247 阅读 · 0 评论 -
docker 不能创建仓库的原因
原创 2020-11-04 22:19:47 · 368 阅读 · 0 评论 -
docker 部署spug运维神器
docer 部署步骤参考官方文档:https://www.spug.dev/docs/install-docker/如果没有外网可以先在一台有外网的机器上把镜像build好并save,然后把镜像传到局域网的机器。这里为了方面直接用官方的镜像,官方的image是有dockerfile的. 顺便学习一下他们的dockerfile 是怎么写的?docker save -o spug_image.docker registry.aliyuncs.com/openspug/spug然后在局域网的服.原创 2021-04-02 19:59:59 · 2078 阅读 · 0 评论 -
云原生的高效生产工具 ---vagrant
vagrant简介vagrant是一个构件虚拟开发环境的工具。他用于创建部署虚拟的开发环境,说白了就是使用vagrant装虚拟机,而装虚拟机的文件由运维组对开发环境做的一个镜像。这样做的目的,省去了我们搭建开发环境,直接装一个虚拟机,把正在使用的开发环境的镜像还原进去。当然使用vagrant最主要解决的一个问题就是,让开发环境同步。“代码在我机子上运行没有问题”这种说辞将成为历史。1、安装virtualBox可以到VirtualBox的官网进行下载:https://www.virtu原创 2021-07-18 00:04:59 · 1839 阅读 · 2 评论 -
你知道什么是 GitHub Action 么?
GitHub Action 是 GitHub 于 2018 年 10 月推出的一个 CI\CD 服务。之前一直都是 Beta 版本,正式版于 2019 年 11 月正式推出。首先还是先放几个官方的链接:GitHub Action :https://github.com/features/actionsGitHub Action 官方市场:https://github.com/marketplace?type=actionsCI\CDCI\CD 其实说的是三件事情:「持续集成(...转载 2021-04-28 13:28:16 · 271 阅读 · 0 评论 -
docker container的操作
目录一、docker exec二、停止容器三、为docker 容器指定name四、通过name启动容器五、显示容器的完整信息六、查看容器的log一、docker execdocker exec 在容器中执行/bin/bash~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORT...原创 2020-11-10 21:55:44 · 667 阅读 · 0 评论 -
Docker 初识
原创 2020-05-12 20:39:12 · 149 阅读 · 0 评论 -
为什么会有docker?Docker 是什么?
一、为什么会有docker?PaaS 项目被大家接纳的一个主要原因,就是它提供了一种名叫“应用托管”的能力。在当时,虚拟机和云计算已经是比较普遍的技术和服务了,那时主流用户的普遍用法,就是租一批 AWS 或者 OpenStack 的虚拟机,然后像以前管理物理服务器那样,用脚本或者手工的方式在这些机器上部署应用。当然,这个部署过程难免会碰到云端虚拟机和本地环境不一致的问题,所以当时的云计算服务,比的就是谁能更好地模拟本地服务器环境,能带来更好的“上云”体验。而 PaaS 开源项目的出现,就是当时解决.原创 2020-08-20 22:54:35 · 642 阅读 · 0 评论 -
docker 发布 flask项目
一、项目准备app.pyfrom flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return "hello docker"if __name__ == '__main__': app.run(host="0.0.0.0", port=5000)二、生成镜像1、dockerfile原创 2020-11-08 21:27:54 · 575 阅读 · 0 评论 -
多阶段构建:Docker 下如何实现镜像多阶级构建?
目录前言使用多阶段构建第一步,编译代码。第二步,构建运行时镜像。镜像构建对比多阶段构建的其他使用方式为构建阶段命名停止在特定的构建阶段使用现有镜像作为构建阶段前言我们知道 Docker 镜像是分层的,并且每一层镜像都会额外占用存储空间,一个 Docker 镜像层数越多,这个镜像占用的存储空间则会越多。镜像构建最重要的一个原则就是要保持镜像体积尽可能小,要实现这个目标通常可以从两个方面入手:基础镜像体积应该尽量小;尽量减少 Dockerfile 的行数,原创 2021-11-05 19:00:00 · 2350 阅读 · 3 评论 -
dockerfile语法
一、FROM 语法scratch -- 从头开始尽量来使用官方提供的image。二、label语法meta信息,类似于代码的注释。三、run语法没run一次image上会有新的一层。因此有必要使用&&合并执行,避免layer 过多看起来很混乱。四、workdir 语法使用workdir不要使用run cd来替代workdir尽量使用绝对路径。增强dockerfile的可移植性。五、add 和copy 语法区别:add...原创 2020-11-04 15:47:26 · 1601 阅读 · 0 评论 -
Redhat离线安装docker
Redhat系统离线安装docker。原创 2020-08-21 14:15:51 · 2196 阅读 · 0 评论 -
docker 命令深入理解
1、docker run centos首次运行如果本地没有该base image,则会从远端clone一个base images。[root@MiWiFi-R3L-srv ~]# docker run centosUnable to find image 'centos:latest' locallylatest: Pulling from library/centos3c72a8ed6814: Pull complete Digest: sha256:76d24f3ba3317fa945原创 2020-11-03 22:54:03 · 1972 阅读 · 0 评论 -
docker 网络命名空间如何连通?
一、busybox介绍busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用。[root@iZ2vceej7yes1abpm7yec2Z ~]# docker i原创 2020-11-13 11:12:24 · 349 阅读 · 0 评论 -
容器的资源限制实战
一、虚拟化技术如何限制资源?vmvare 安装的虚拟机可以通过界面设定cpu、内存... 的资源限制,如下图。docer 容器也同样可以通过指定参数来达到这个目的。其原理为何?请参见我的环境是一台阿里云服务器。二、为容器运行限定内存和cpu通过docker run --help-m, --memory bytes Memory limit --memory-reservation bytes Memory soft lim原创 2020-11-11 08:40:03 · 306 阅读 · 0 评论 -
Docker容器和镜像的区别
目录一、什么是镜像?1.1 Image Layer(镜像层)1.2 Image(镜像,只读层的集合)二、什么是容器?2.1 Container(容器,一层读写层+多层只读层)2.2 Running Container(运行态容器,一层读写层+多层只读层+隔离的进程空间和包含其中的进程)三、总结在学习使用docker过程中会遇到镜像和容器,两者之间的区别是什么?有什么关联?本文将用图文并茂的方式介绍容器、镜像的区别,能够很好的帮助各位深入理解Docker。转载 2020-08-20 22:15:35 · 1525 阅读 · 0 评论 -
为什么构建容器需要 Namespace ?
目录什么是 Namespace?(1)Mount Namespace(2)PID Namespace(3)UTS Namespace(4)IPC Namespace(5)User Namespace为什么 Docker 需要 Namespace?什么是 Namespace?Namespace 是 Linux 内核的一项功能,该功能对内核资源进行分区,以使一组进程看到一组资源,而另一组进程看到另一组资源。Namespace 的工作方式通过为一组资源和进程设置相同的 N.原创 2021-05-20 17:28:38 · 272 阅读 · 0 评论 -
docker image的发布
一、dockerhub介绍https://hub.docker.com/可以发布自己的image 也可以pull别人的image,类似于github,但是感觉比github强大,个人理解是github的增强版本。有了dockerhub会有更多的人能顺利的run起来github上的项目,这点是深有体会。需要注意的是pull image不需要登录,发布image需要登录,并且需要邮箱验证否则无法推送。事实上github 是可以和dockcerhub相互关联的。二、发布image到...原创 2020-11-05 22:46:02 · 335 阅读 · 0 评论 -
Docker Compose与云原生初识
目前为止,我所有的操作都是围绕单个容器进行的,但当我们的业务越来越复杂时,需要多个容器相互配合,例如需要数据库、nginx、web、spark…当然可以写在一个docker file中,显然这是不推荐的:因为1、耦合2、镜像臃肿我们在写程序的时候不就是一直在避免这些事情吗?一、应用场景有时候需要多个主机组成容器集群才能满足我们的业务需求,这个时候就需要用到容器的编排工具了。因为容器编排工具可以帮助我们批量地创建、调度和管理容器,帮助我们解决规模化容器的部署问题。编排工具主要有三种,本次主要原创 2021-04-26 22:33:35 · 316 阅读 · 0 评论 -
云原生技术基础 练习题
一、容器原创 2021-05-15 23:27:36 · 784 阅读 · 0 评论 -
docker常用命令
重启docker服务sudo service docker restart 关闭docker服务dockerservice docker stop 开启docker服务dockerservice docker start 查看当前运行的容器:docker ps 查询存在的容器:docker ps -a 删除容器:docker -rmCONTAINERID 强制删除容器:docker -rm -f CONTAINERID 不能够删除一个正在运行的容器,会报错。需要先停止...原创 2020-08-20 22:13:43 · 291 阅读 · 0 评论 -
如何在生产环境中使用 Docker Swarm 调度容器?
随着我们的业务规模越来越大,我们的容器规模也逐渐增大时,数量庞大的容器管理将给我们带来许多挑战。Docker 官方为了解决多容器管理的问题推出了 Docker Swarm ,我们可以用它来管理规模更大的容器集群。Swarm 的前生今世2014 年 Docker 在容器界越来越火,这时容器的编排工具 Mesos 和 Kubernetes 也开始崭露头角。此时,Docker 公司也开始筹划容器的编排和集群管理工具,推出了自己的通信协议项目 Beam。后来,通过改进 Beam,Beam 成为一个允许使用 D原创 2021-11-03 10:36:24 · 924 阅读 · 0 评论 -
Docker容器迁移到其他服务器的5种方法
迁移在许多情况下都是不可避免的。硬件升级、数据中心变化、过时的操作系统,所有这些都可能成为迁移的触发点。Docker容器迁移通常是迁移任务的一部分。今天我们将看到将Docker容器从现有服务器迁移到另一台服务器的不同方法。如何将Docker容器迁移到另一台服务器,没有直接将Docker容器从一台服务器迁移到另一台服务器的方法,我们通过使用下面这些方法中的一个或多个来解决Docker容器迁移的问题。1、导出和导入容器导出容器意味着从容器的文件系统创建压缩文件,导出的文件保存为“gzip”文件。doc原创 2021-03-21 16:39:06 · 1416 阅读 · 0 评论