
Docker
文章平均质量分 71
大鹏的世界
天道酬勤!分布式+大数据架构解决方案
展开
-
Docker跨主机通信解决方案探讨
Docker容器技术正在被企业应用在越来越多的领域中,比如快速部署环境、简化基础设施的配置流程等等。当你开始在真实的生产环境使用Docker容器去部署应用系统时,你可能需要用到多个容器部署一套复杂的多层应用系统,其中每个容器部署一个特定的应用系统。此时可能就会遇到如下问题:有多台宿主机,我们事先不知道会在哪台宿主机上创建容器,如何保证在这些宿主机上创建的容器们可以互相联通?关于SDN和容器作为近年来比较热的一个概念,众所周知SDN是Software Defined Network的缩写,即软件原创 2021-07-27 12:05:44 · 1758 阅读 · 0 评论 -
实战|两种常用的跨主机Docker容器互通方法
现在提到容器,可能很容易想到的就是Kubernates,确实它很火,也很强大,但是对于规模非常小,容器不多的小环境,Kubernetes 就显得比较累赘了,直接使用Docker Compose拉取一个小环境,这种使用方式,也有不少用户在使用;本篇通过实战,来介绍两种,在不使用类似Kubernetes容器管理平台的下,实现跨主机Docker容器之间互通的方法;基础环境准备安装Docker在能访问公网且DNS正常的情况下,将下面的代码,直接复制并在docker-host-01,docker-host原创 2021-07-27 12:04:12 · 6804 阅读 · 10 评论 -
Docker跨主机通信解决方案探讨
背景Docker 容器技术正在被企业应用在越来越多的领域中,比如快速部署环境、简化基础设施的配置流程等等。当你开始在真实的生产环境使用 Docker容器去部署应用系统时,你可能需要用到多个容器部署一套复杂的多层应用系统,其中每个容器部署一个特定的应用系统。此时可能就会遇到如下问题:有多台宿主机,我们事先不知道会在哪台宿主机上创建容器,如何保证在这些宿主机上创建的容器们可以互相联通?本文介绍了Docker容器平台中的跨主机通信方案,包括libnetwork,calico,weave,flannel原创 2021-07-27 12:03:41 · 446 阅读 · 0 评论 -
跨宿主机- 如何实现 Docker 容器的通讯?(Docker-Swarm)
之前在Docker篇(五):容器之间该如何通讯?中,讲到了运行多个容器时的网络通信方式,但那些容器都是运行在同一台物理机的在实际项目中,我们往往需要部署多套软件,比如组件需要使用集群化部署,或者一个项目程序本身就依赖了很多组件,为了存储与运行效率等方面,往往需要跨主机部署。那么,该如何实现跨主机容器之间的网络通讯呢?哎,你想到的,Docker也想到啦,或者说本来就存在着一种通用的方案吧一、理论:Docker 如何实现跨主机网络?1、认识 Docker OverlayOverlay 网..原创 2021-07-27 12:00:33 · 4587 阅读 · 5 评论 -
同一宿主机 - 容器之间该如何通讯?
在Docker篇(四):如何将程序与运行环境打包成一个镜像中,我们通过将集成mariadb的Spring Boot项目打包为一个镜像,并成功运行的例子,带领大家了解了如何一次性将程序以及程序依赖的组件打包到一个镜像中进行交付但是在实际生产中,大部分情况下,我们会把程序和组件分开来部署,也就是说将程序和各个组件分别放在不同镜像中。启动各个镜像,就会对应多个容器相当于把各个运行的进程隔离开了,这种独立运行的思想类似于微服务的思想,往往比较好维护,并且某个组件挂了,也不会影响整个应用服务既转载 2021-07-27 11:55:34 · 1675 阅读 · 1 评论 -
Docker网络以及跨宿主机通信
1、通讯代理模式Docker官方提供了一种ambassador的agent方案。此方案借助一个名为svendowideit/ambassador的image,将不同host进行解耦合。 Docker 部署图如下: 具体实施步骤如下: 首先我们要在hostA和hostB之间pullsvendowideit/ambassador。1 docker pull svendowideit/ambassador 根据部署图可得知,是hostB要link hostA的conta.原创 2021-07-26 15:29:07 · 333 阅读 · 0 评论 -
深入理解docker的link机制
简介:什么是docker的link机制 同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地址来通信,也可以通过宿主机的ip加上容器暴露出的端口号来通信,前者会导致ip地址的硬编码,不方便迁移,并且容器重启后ip地址会改变,除非使用固定的ip,后者的通信方式比较单一,只能依靠监听在暴露出的端口的进程来进行有限的通信。通过docker的link机制可以通过一个name来和另一什么是docker的link机制同一个宿主机上的多个docker容器之间如果想进行通信,可以通.原创 2021-07-23 18:24:59 · 3502 阅读 · 0 评论 -
Docker搭建minio server
MinIO 是一款基于Go语言的高性能对象存储服务,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等环境说明Centos 7/8 docker/podman minio version RELEASE.2021-07-08T19-43-25Z搭建步骤初始化目录mkdir /miniomkdir /minio/datamkdir /minio/config拉取镜像docker pull minio/minio如果是podman,执原创 2021-07-23 14:12:00 · 5448 阅读 · 2 评论 -
如何查看docker run启动参数命令:runlike -p nginx
通过runlike去查看一个容器的docker run启动参数 pythone3安装 yum install -y python36 ln -s python3.6 python3 安装pip3 yum install -y python36-setuptools easy_install pip 安装之后,pip3位于/usr/local/bin目录下 runlike安装: pip install runlike 查看docker 容器run启动参数命令:runlik...原创 2021-07-21 11:22:05 · 1261 阅读 · 0 评论 -
Docker层和虚悬镜像(dangling image)介绍
当你拉取Docker镜像时,你会注意到它被拉取成不同的层。另外,当你创建自己的Docker镜像时,也会创建多个层。在本文中,我们将更好地理解Docker层。1.什么是Docker层?Docker镜像由几层组成。每层都对应 Dockerfile中的特定指令。Docker层创建指令有: RUN, COPY, ADD。其他指令将创建中间层,并且不会影响镜像的大小。我们看一个例子:创建一个Spring Boot MVC应用程序并且在Maven构建中创建Docker镜像。以上这些资源可从GitHu..原创 2021-07-20 14:59:42 · 1024 阅读 · 0 评论 -
Dockerfile常用指令简介
编号 指令 作用 示例 备注 1 FROM 构建的镜像是基于哪个镜像 FROM centos:7 tag是可选的 2 MAINTAINER 镜像维护者姓名或邮箱地址 MAINTAINER yang 或 MAINTAINER yang@163.com - 3 LABEL 镜像的属性标签,一般放到第...原创 2021-07-20 14:30:24 · 477 阅读 · 0 评论 -
使用Dockerfile为SpringBoot应用构建Docker镜像
上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过docker-maven-plugin来构建docker镜像的方式,此种方式需要依赖自建的Registry镜像仓库。本文将讲述另一种方式,使用Dockerfile来构建docker镜像,此种方式不需要依赖自建的镜像仓库,只需要应用的jar包和一个Dockerfile文件即可。Dockerfile常用指令ADD用于复制文件,格式: ADD <src> <dest> 示例: # 将当前目录下的.转载 2021-07-17 12:49:50 · 383 阅读 · 0 评论 -
使用Maven插件构建Docker镜像
本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程。Docker RegistryDocker Registry 2.0搭建 docker run -d -p 5000:5000 --restart=always --name registry2 registry:2 如果遇到镜像下载不下来的情况,需要修改 /etc/docker/daemon.json 文件并添加上 registry-mirro.原创 2021-07-17 10:29:30 · 378 阅读 · 1 评论 -
Docker命令及参数详解
1. Docker命令行Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,所以让我们一起开始一次真正的命令行学习之旅。首先,Docker的命令清单可以通过运行docker,或者docker help命令得到:$ sudo docker在Docker容器技术不断演化的过程中,Docker的子命令已经达到34个之多,其中核心子命令(...原创 2021-07-17 09:35:50 · 7756 阅读 · 0 评论 -
阿里云服务器被[crypto]攻击导致CPU爆满(已解决)
缘由之前玩Docker并开放了2375端口和redis 弱密码 且默认6379端口 的时候,安装时未使用密码,然后还在阿里云开放了0.0.0.0的6379端口,导致出现了漏洞,现象被安装了Docker镜像且启用了容器运行。 Reids多了几条任务计划的缓存数据 /usr/share 目录下多了 5个文件 -rwxr-xr-x 1 root root 4563624 Jul 1 17:46 '[crypto]' -rw-r--r-- 1 root root 4384...原创 2021-07-14 15:05:45 · 1786 阅读 · 1 评论 -
Centos安装和卸载docker
自己随便yum 安装了docker 安装了发现一直启动不了,一直报Failed to start docker.service: Unit not found. 这个错误,于是卸载重装,记录一下这个坑爹的过程一、查看自己已经安装的dockeryum list installed |grep docker输入后可以清楚的看到控制台会输出[root@xxwlog docker]# yum list installed |grep dockerdocker-client.x86_64原创 2021-07-13 09:31:16 · 377 阅读 · 0 评论 -
Docker常见问题处理
[root@ecs-4e46-0002 sh]# docker psCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?[root@ecs-4e46-0002 sh]# /bin/systemctl restart docker.serviceJob for docker.service failed because the control process ex原创 2021-07-12 17:10:43 · 313 阅读 · 0 评论 -
docker 容器访问docker容器中 redis/mysql, --link
方法一:--link mysql:dbhost 使用docker run -d -P --name web --link xxxx:redis-dapeng training/webapp python app.py[xxxx是redis的容器的id,redis-dapeng是映射到应用容器内的 HOST ]docker 运行web项目的配置文件连接容器内redis 就直接通过 xxxx:redis-dapeng 中的redis-dapeng 去关联就可以了方法二:容器内部的软连接..原创 2021-07-12 17:05:00 · 1302 阅读 · 0 评论 -
Docker <none> <none>清理
如果查看docker的image或者container的话,肯定会看到很多 <none>:<none> 的东西,那么这都是是些什么? 可以删除了吗?答案是: 分情况讨论如果使用的是带-a参数的命令:如docker container ls -a或者docker image ls -a那么这里看到的所有<none>:<none>的东西,很大几率上是intermediate layer. 是好孩子,不要删除.产生的原因:Docker的镜像是分原创 2021-07-12 15:17:47 · 626 阅读 · 0 评论 -
5个你必须知道的Docker实用工具
Docker社区已经创建了许多开源的工具,更多的用例使得它比您想像的更有用。你可以在这里查阅它们。你在网上能找到很多酷炫的Docker工具。绝大多数是开源的。过去两年,我已经积极地将Docker用到我的对大多数开发项目中。在你开始使用Docker的时候,你会发现,在很多用例里它比你预想的更加适用。你会希望Docker为你做得更多,而且它不会让你失望!Docker社区非常活跃,每天都有很多有用的工具。在这个社区你很难知道哪些发生了革新。为了帮助你,我已经收集了我日常工作中用到的很有趣很实用原创 2021-02-24 17:43:10 · 1217 阅读 · 0 评论 -
Docker容器跨主机通信之:直接路由方式
Docker容器跨主机通信之:直接路由方式一、Docker网络基本原理直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包;此外,如果不同子网之间要进行通信,需要额外的路由机制。Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效率极高。这是因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包将被直接复制到接收接口的接收缓存中,而无需通过外部物理网络设备进行交换。对于本地系统和.原创 2021-02-24 16:38:58 · 1080 阅读 · 1 评论 -
[Docker]Mac访问Docker容器IP
问题Docker for Mac无法在macOS通过IP直接访问Docker中容器,只能通过EXPOSE端口来访问,这个问题在官方文档中有描述,对于大多数情况EXPOSE是够用的。但是对于测试某些集群的时候就会有问题,比如搭建HBase集群,集群会有很多容器使用相同端口,节点注册到zookeeper上的是容器内的IP或机器名,要想在宿主机器上访问就必须能够访问节点IP。另外,除了自己访问之外,为了分享或者测试,还需临时把搭建好的环境提供给其他同事。因此,主要的问题如下:需要支持从macOS访问容器I原创 2021-02-24 16:24:18 · 4392 阅读 · 0 评论 -
mac系统上访问docker容器中的ip配置
To enable the proxy first shutdown the app, then enable the experimental SOCKSserver on port 8888: (this requires thejqtool available from homebrew)cd ~/Library/Group\ Containers/group.com.docker/mv settings.json settings.json.backupcat settings.js..原创 2021-02-24 16:12:51 · 2254 阅读 · 1 评论 -
如何获取 docker 容器(container)的 ip 地址(转)
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id可直接获得容器的ip地址如:172.18.0.4显示所有容器IP地址:docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)常用方法原创 2021-02-24 16:04:00 · 794 阅读 · 0 评论 -
Docker,Docker Compose,Docker Swarm,Kubernetes(k8s)之间的区别
最近在学习Docker容器,了解到一些相关的技术,像是Kubernetes,Docker-compose,Docker Swarm,分不清这些东西之间的区别,特意去研究了一下,分享一下,适合刚入门学习容器的同学了解。DcokerDocker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。Docker-ComposeDocker-Compose 是原创 2021-02-24 11:54:32 · 1963 阅读 · 1 评论 -
dockerfile 与 docker-compose的区别
先简单理解 docker 的使用过程,它分为镜像构建与容器启动。镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(原创 2021-02-24 11:48:10 · 637 阅读 · 1 评论 -
Mac下不能监听Docker 2375端口
参考链接:https://github.com/docker/for-mac/issues/770 使用 IDEA 配置 Docker 发现 2375 端口无法访问 修改修改 docker.service 文件,该文件在 Mac 上没有找到 换一种解决办法 执行docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-C原创 2021-02-22 16:37:36 · 873 阅读 · 0 评论 -
Docker:docker国内镜像加速
创建或修改 /etc/docker/daemon.json 文件,修改为如下形式{ "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ]}加载重启docker$ sudo systemctl daemon-reload$ sudo systemctl r原创 2020-11-16 17:02:21 · 235 阅读 · 0 评论 -
docker常用命令
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。Docker 面向对象 容器 对象 镜像 类 Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的模板。 Docker 容器(Container) 容器是独立运行原创 2020-11-16 15:22:28 · 246 阅读 · 0 评论