![](https://img-blog.csdnimg.cn/866e4989a57a40b5a732a12ca11b30a4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Docker系列
文章平均质量分 71
用官网的一句介绍:Accelerate how you build, share, and run modern applications.
小叶柏杉
一个努力保住头发的程序猿。
展开
-
【Docker系列】docker manifest
docker manifest 描述管理 Docker 映像清单和清单列表需要连接网络,从docker hub上拉取信息,关于manifest信息 打印出来。不连接网络会报错。注意:此命令在 Docker 客户端上是实验性的。它不应在生产环境中使用。官方文档地址:https://docs.docker.com/engine/reference/commandline/manifest/我的理解:docker hub社区的镜像维护,让他人直观的了解你构建的镜像。就是 docker原创 2022-01-29 00:59:00 · 4574 阅读 · 0 评论 -
【Docker系列】 Docker 多架构支持 和 Docker Buildx 构建多架构
Docker 的多架构支持docker自适应了CPU的架构会自动选择架构的版本镜像多架构的标签,会自动选择适合的标签。使用 buildx 构建多架构镜像Windows和Mac的桌面版Docker自带buildx命令,但是Linux环境下的Docker需要自行安装buildx 。https://github.com/docker/buildxhttps://docs.docker.com/buildx/working-with-buildx/Docker BuildxPS C:\User原创 2022-01-29 00:42:19 · 4545 阅读 · 1 评论 -
【Docker系列】容器安全
app代码层面的漏洞镜像选择官方认证的基础镜像:要不随便使用其他镜像,可能会恶意植入程序。例如,挖矿程序。镜像的漏洞扫描容器容器的漏洞扫描容器的实时监控主机Linux KernelKernel namespacesControl groupsDocker 配置扫描Docker环境的安全检查Docker Bench for Security:https://github.com/docker/docker-bench-securityDocker Bench f.原创 2022-01-28 04:41:27 · 208 阅读 · 0 评论 -
Podman 介绍,安装,基本操作
Podman 介绍What is Podman?Podman 是一个基于 Linux 系统的 daemon-less 的容器引擎。 可以用来开发,管理和运行 OCI 标准的容器. podman可以运行在root或者非root用户模式。Podman 是 Red Hat 在2018年推出的,源代码开放。官方网站 https://podman.io/OCI https://opencontainers.org/和 docker 的区别最主要的区别是podman是Daemonless的,而Dock原创 2022-01-28 02:06:39 · 8825 阅读 · 1 评论 -
Docker Swarm 练习:投票 App
经典示例: Example Voting App 示例投票AppGitHub地址:https://github.com/dockersamples/example-voting-app网络不好的同学,我已经把源码下载,地址:https://download.csdn.net/download/weixin_48447848/77354937详细讲解地址请看:Docker Compose 练习:投票 AppExample Voting App 示例投票App跨多个Docker容器运行的简单分布式应用原创 2022-01-27 23:30:43 · 1202 阅读 · 1 评论 -
【Docker系列 Swarm】 swarm volume 数据持久化
Docker Swarm volume 数据持久化volume 是将宿主级的目录映射到容器中,以实现数据持久化。可以用两种方式来实现:volume 默认模式:工作节点宿主机数据同步到容器内。volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步到容器。准备文件docker-compose.ymlversion: "3.8"services: db: image: mysql:5.7 environment: - MYSQL_原创 2022-01-27 22:19:17 · 1874 阅读 · 0 评论 -
【Docker系列】 Docker secrets
secrets敏感数据保护。例如:密码,key,证书等用Secret保护。官方文档地址:https://docs.docker.com/engine/swarm/secrets/创建secret (有两种方式)从标准的收入读取$ echo abc123 | docker secret create mysql_pass -4nkx3vpdd41tbvl9qs24j7m6w$ docker secret lsID NAME D原创 2022-01-27 21:39:42 · 1859 阅读 · 0 评论 -
【Docker系列 Swarm】 swarm stack 部署多 service 应用
准备工作安装docker-compose先在swarm manager节点上安装一下 docker-compose$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose$ sudo chmod +x /usr/local/bin/docker-compose环原创 2022-01-27 21:14:13 · 549 阅读 · 0 评论 -
【Docker系列】部署多 service 应用,手动部署,不建议
部署多 service 应用如何像docker-compose一样部署多服务应用,我们先看手动的方式环境准备app.pyfrom flask import Flaskfrom redis import StrictRedisimport osimport socket# testapp = Flask(__name__)redis = StrictRedis(host=os.environ.get('REDIS_HOST', '127.0.0.1'),原创 2022-01-27 20:43:16 · 971 阅读 · 0 评论 -
【Docker系列】Swarm Internal Load Balancing 内部负载均衡
Internal Load Balancing 内部负载均衡创建一个mynet的overlay网络,创建一个servicevagrant@swarm-manager:~$ docker network lsNETWORK ID NAME DRIVER SCOPEafc8f54c1d07 bridge bridge local128fd1cb0fae docker_gwbridge bridge local0原创 2022-01-26 21:58:11 · 461 阅读 · 0 评论 -
【Docker系列】Swarm 的 ingress网络
Swarm 的 ingress网络docker swarm的ingress网络又叫 Ingress Routing Mesh主要是为了实现把service的服务端口对外发布出去,让其能够被外部网络访问到。ingress routing mesh是docker swarm网络里最复杂的一部分内容,包括多方面的内容:iptables的 Destination NAT流量转发Linux bridge, network namespace使用IPVS技术做负载均衡包括容器间的通信(overlay)和原创 2022-01-26 21:33:00 · 5993 阅读 · 0 评论 -
Docker对普通开发者是否有用?
Docker 如今赢得了许多关注,很多人觉得盛名之下其实难副,因为他们仍然搞不清 Docker 和普通开发者到底有什么关系。许多开发者觉得 Docker 离自己很远,Docker 是生产环境中的工具,和自己无关。我也是花了很长时间才想清楚作为普通开发人员如何在自己的开发中使用 Docker。坦率地说,我仍处在学习的过程中。翻译 2022-01-25 05:54:04 · 760 阅读 · 0 评论 -
【Docker系列】Swarm 的 overlay 网络详解
多节点集群搭建请看上一篇文章:【Docker系列】Docker Swarm 多节点集群Swarm 的 overlay 网络详解可以看到overlay网络$ docker network lsNETWORK ID NAME DRIVER SCOPEaba37840837a bridge bridge local20a5dcd30faa docker_gwbridge bridge local97d548bf9原创 2022-01-25 03:59:58 · 3878 阅读 · 0 评论 -
【Docker系列】Docker Swarm 多节点集群
搭建创建3节点swarm cluster的方法https://labs.play-with-docker.com/ play with docker 网站, 优点是快速方便,缺点是环境不持久,4个小时后环境会被重置在本地通过虚拟化软件搭建Linux虚拟机,优点是稳定,方便,缺点是占用系统资源,需要电脑内存最好8G及其以上在云上使用云主机, 亚马逊,Google,微软Azure,阿里云,腾讯云等,缺点是需要消耗金钱(但是有些云服务,有免费试用)多节点的环境涉及到机器之间的通信需求,所以防火墙和网原创 2022-01-24 23:23:58 · 1707 阅读 · 0 评论 -
【Docker系列】Docker Swarm
docker swarm 介绍多机器如何管理?如果跨机器做scale横向扩展?容器失败退出时如何新建容器确保服务正常运行?如何确保零宕机时间?如何管理密码,Key等敏感数据?其它容器编排 swarmSwarm的基本架构k8s在容器编排领域处于绝对领先的地位2021年redhat调查https://www.redhat.com/en/resources/kubernetes-adoption-security-market-trends-2021-overview为什么还要学些了原创 2022-01-23 22:21:02 · 772 阅读 · 0 评论 -
Docker Compose 练习:投票 App
Docker Compose 经典示例:投票APP跨多个Docker容器运行的简单分布式应用程序。原创 2022-01-22 20:54:52 · 1677 阅读 · 0 评论 -
【Docker系列】Docker Compose 服务依赖和健康检查
当依赖的服务,启动失败或者错误时,后续的服务哪怕成功启动,业务无法运行的。这时就需要健康检查!健康检查是容器运行状态的高级检查,主要是检查容器所运行的进程是否能正常的对外提供“服务”,比如一个数据库容器,我们不光需要这个容器是up的状态,我们还要求这个容器的数据库进程能够正常对外提供服务,这就是所谓的健康检查。原创 2022-01-22 05:54:57 · 8669 阅读 · 3 评论 -
【Docker系列】Docker Compose 环境变量
教你如何自定义docker-compose的环境变量,如何用文件写数据库的密码原创 2022-01-22 04:54:42 · 2829 阅读 · 0 评论 -
【Docker系列】Docker Compose 水平扩展
docker-compose 水平扩展,动态添加容器原创 2022-01-22 04:20:28 · 773 阅读 · 0 评论 -
【Docker系列】Docker Compose 网络
准备环境创建一个network文件夹,里面放 docker-compose.yml文件使用老师准备的好镜像net-box:latestversion: "3.8"services: box1: image: xiaopeng163/net-box:latest command: /bin/sh -c "while true;do sleep 3600;done" box2: image: xiaopeng163/net-box:latest原创 2022-01-22 00:50:32 · 8402 阅读 · 0 评论 -
【Docker系列】docker-compose 服务更新
docker-compose服务更新命令1. 服务更新2. 增加新的容器3. 删除多余的容器4. 重启服务原创 2022-01-21 22:51:07 · 7998 阅读 · 0 评论 -
【Docker系列】Docker Compose 基础
docker-compose基础操作最详细讲解原创 2022-01-21 04:04:58 · 1368 阅读 · 0 评论 -
【Docker系列】Python Flask + Redis 练习程序
Python Flask + Redis 练习两个容器,一个flask-demo,一个是redis-server在一个自定义网络bridge,相互ping,不需要知道ip,只用名字就能ping通程序准备准备一个Python文件,名字为 app.py 内容如下:提供一个web服务,可以访问地址,返回一个Hello Container World!..并且记录访问的次数。from flask import Flaskfrom redis import Redisimport osimport原创 2022-01-21 00:45:04 · 1172 阅读 · 1 评论 -
【Docker系列】网络命名空间
网络命名空间Linux的Namespace(命名空间)技术是一种隔离技术,常用的Namespace有 user namespace, process namespace, network namespace等。在Docker容器中,不同的容器通过Network namespace进行了隔离,也就是不同的容器有各自的IP地址,路由表等,互不影响。准备一台Linux机器,这一节会用到一个叫 brtcl 的命令,这个命令需要安装,如果是Ubuntu的系统,可以通过 apt-get install brid原创 2022-01-19 02:22:50 · 989 阅读 · 0 评论 -
【Docker系列】Docker的网络
问题:容器为什么能获取到IP地址?为什么宿主机可有ping通容器的IP?为什么容器之间的IP是互通的?为什么容器能ping通外网?容器的端口转发是怎么回事?原创 2022-01-19 02:05:20 · 295 阅读 · 0 评论 -
docker容器创建指定网关和网段
docker容器创建指定网关和网段创建bridge时手动指定ip$ docker network create -d bridge --gateway 172.200.0.1 --subnet 172.200.0.0/16 demofb0df58fb29358d1dbe195bd4de97e3962051358da8af3e152c87e61b8852f99$ docker network lsNETWORK ID NAME DRIVER SCOPEb5edf38686原创 2022-01-19 00:33:52 · 3326 阅读 · 0 评论 -
【Docker系列】多个机器之间的容器共享数据
多个机器之间的容器共享数据官方参考链接 https://docs.docker.com/storage/volumes/#share-data-among-machinesDocker的volume支持多种driver。默认创建的volume driver都是local$ docker volume inspect vscode[ { "CreatedAt": "2021-06-23T21:33:57Z", "Driver": "local",原创 2022-01-18 01:35:41 · 816 阅读 · 0 评论 -
【Docker系列】Docker的存储
介绍默认情况下,在运行中的容器里创建的文件,被保存在一个可写的容器层:如果容器被删除了,则数据也没有了这个可写的容器层是和特定的容器绑定的,也就是这些数据无法方便的和其它容器共享Docker主要提供了两种方式做数据的持久化Data Volume, 由Docker管理,(/var/lib/docker/volumes/ Linux), 持久化数据的最好方式Bind Mount,由用户指定存储的数据具体mount在系统什么位置Data Volume本节部分操作需要Linux系统的环境原创 2022-01-16 23:52:25 · 1387 阅读 · 0 评论 -
【Docker系列】Dockerfile完全指南
最详细的中文Dockerfile介绍文章原创 2022-01-13 22:50:21 · 333 阅读 · 0 评论 -
Dockerfile 使用技巧
1. 合理使用缓存:把经常变化的文件往后面放,把不经常不会变化的内容,往前面放保证`CACHED`,提高速度2. 合理使用`.dockerignore`:过滤文件,提高速度,保护隐私,以免传入服务端和打进镜像中,提高安全性。3. 镜像多阶段构建:较少文件大小,仅包括编译后的执行程序,更好维护和移植镜像。4. 尽量使用非root用户:提高安全性。原创 2022-01-13 22:47:23 · 624 阅读 · 0 评论 -
Dockerfile构建一个简单的Python Flask 镜像
Python 程序from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello, World!'DockerfileFROM python:3.9.5-slimCOPY app.py /src/app.pyRUN pip install flaskWORKDIR /srcENV FLASK_APP=app.pyEXPOSE 5000CMD原创 2022-01-13 16:55:03 · 801 阅读 · 0 评论 -
【Docker系列】镜像的创建管理和发布
镜像的创建管理和发布原创 2022-01-12 17:39:47 · 895 阅读 · 0 评论 -
【Docker系列】容器快速上手
Docker CLI 命令行介绍Docker VersionWindows (Intel芯片)Server 的 OS/Arch: linux/amd64是因为Windows内置的hyper-V或者wsl2的虚拟机,是搭载的Linux系统,把docker的服务端放到了虚拟机中。$ docker versionClient: Docker Engine - CommunityCloud integration: 1.0.12Version: 20.10.5API vers原创 2022-01-12 07:58:27 · 405 阅读 · 0 评论 -
【Docker系列】Docker 的介绍和安装
容器技术的介绍注意:我们这里所说的容器container是指的一种技术,而Docker只是一个容器技术的实现,或者说让容器技术普及开来的最成功的实现。容器 ≠ Docker容器正在引领基础架构的一场新的革命1990年代的PC2000年代的虚拟化 VMware VirtualBox2010年代的cloud 亚马逊aws 阿里云2011年代的container 开始暴发了什么是container(容器)?容器是一种快速的打包技术Package Software in原创 2022-01-11 03:37:05 · 444 阅读 · 0 评论 -
Linux系统上安装Docker,在线与离线两种情况下安装
docker在有网和无网情况下安装在线安装docker离线安装docker原创 2022-01-11 03:34:50 · 569 阅读 · 0 评论 -
Docker中文文档 分享
Docker中文文档 分享https://dockertips.readthedocs.io/en/latest/原创 2022-01-11 02:34:08 · 1416 阅读 · 0 评论 -
【Docker系列】 为什么要系统的学习Docker?
我为什么要系统学习Docker我在2018年的时候,就已经接触了docker,那时候我在搜狗,作为测开人员,在日常的环境部署和测试搭建,以及相关的开发的测试软件部署,都是在云上执行。刚开始推广的时候,很多人整不明白,也很抗拒,真的没有实体服务器好用(虚拟机服务器等),也出现了很多的BUG使用也不是很方便。在使用的情况下,就觉得和实体机没有什么区别,当时部署脚本要比实体机麻烦不少,也要对其做一些代码调整才可以正常部署。当时就觉得没有虚拟机好用。那时候就清楚两点:通过Docker容器达到云部署效果,可以原创 2022-01-11 02:27:57 · 293 阅读 · 0 评论