![](https://img-blog.csdnimg.cn/20200601181413555.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Docker
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低
小叶曲
这个作者很懒,什么都没留下…
展开
-
Docker 概述
Docker为什么会出现?一款产品:开发→上线两套环境,应用环境,应用配置。开发--------运维。问题:我在我的电脑上可以运行。版本更新,导致服务不可用。环境配置是十分的麻烦,每一个机器都要部署环境(集群 Redis、ES、 Hadoop.....)费时费力。发布一个项目( jar+(Redis MySQL jdk ES))项目能不能都带上环境安装打包之前在服务器配置一个应用的环境Redis、MySQL、jdk、ES、Hadoop,配置麻烦,不能够跨平台。( Windows发布到 Linu.原创 2020-06-21 23:21:33 · 146 阅读 · 0 评论 -
Docker 初识
Docker中的名词概念镜像(Images):Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===> run ==> tomcat01容器(提供服务器)通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。镜像和容器的关系就像是类和对象实例的关系容器(Containers):Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。启动、停止、删除、等基本命令目前就可以把这个容器理解为就是一个简易的.原创 2020-06-21 23:21:19 · 178 阅读 · 0 评论 -
镜像和容器的基本命令
镜像的基本命令帮助命令docker version # 显示 Docker 版本信息。docker info # 显示 Docker 系统信息,包括镜像和容器数docker --help # 帮助帮助文档:https://docs.docker.com/engine/reference/commandline/docker/镜像命令dockerimages(查看主机上的镜像)# 列出本地主机上的镜像[root@xi.原创 2020-06-21 23:21:06 · 263 阅读 · 0 评论 -
使用Docker 安装 Nginx
搜索镜像[root@xiaoyequ ~]# docker search nginxNAME DESCRIPTION STARS OFFICIAL AUTOMATEDnginx Official build of Nginx.原创 2020-06-21 23:21:13 · 120 阅读 · 0 评论 -
使用Docker 安装 Tomcat
官方文档解释-it :交互模式--rm:容器启动成功并退出以后容器就自动移除,一般在测试情况下使用!docker run -it --rm tomcat:9.0 # 用完就删除下载tomcat镜像docker pull tomcat启动-d 后台运行--name 给容器命名-p 宿主机端口:容器内部端口docker run -d -p 3344:8080 --name tomcat9 tomcat外...原创 2020-06-21 23:20:59 · 116 阅读 · 1 评论 -
使用Docker 部署 es + kibana
启动es容器需要考虑几个问题端口暴露问题 9200、9300 数据卷的挂载问题 data、plugins、conf 吃内存 - "ES_JAVA_OPTS=-Xms512m -Xmx512m"扩展命令docker stats 容器id # 查看容器的cpu内存和网络状态启动es测试(--net somenetwork ?网络配置)9200作为Http协议,主要用于外部通讯( ES节点 和 外部 通讯使用 )9300作为Tcp协议,jar之间就是通过tcp协议.原创 2020-06-21 23:20:53 · 561 阅读 · 0 评论 -
Portainer 可视化面板安装
Portainer(先用这个)docker run -d -p 8088:9000 \--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainerRancher(CI/CD再用这个)安装rancher-server:docker run --name rancher-server -p 8000:8080 -v /etc/localtime:/et原创 2020-06-21 23:20:47 · 228 阅读 · 0 评论 -
Docker 镜像原理
联合文件系统镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含 运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。镜像加载的原理UnionFS (联合文件系统)UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统, 它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories in原创 2020-06-21 23:20:41 · 275 阅读 · 0 评论 -
Commit 镜像
docker commit 从容器创建一个新的镜像。提交容器副本使之成为一个新的镜像!语法docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]测试下载运行Tomcat从Docker Hub 下载 tomcat 镜像到本地并运行-it:交互终端 -p:端口映射docker run -it -p 3344:8080 --name tomcat9 tomcat注意:docker启动官方tomcat镜像的容器,发现4.原创 2020-06-21 23:20:35 · 218 阅读 · 0 评论 -
Docker 容器数据卷
什么是容器数据卷docker的理念回顾:将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的!就好比,你安装一个MySQL,结果你把容器删了,就相当于删库跑路了,这也太扯了吧!所以我们希望容器之间可以共享数据,Docker容器产生的数据,如果不通过docker commit 生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了!这样是行不通的!为了能保存数据在Docker中我们就可以使用卷!让数据挂载到我们本地原创 2020-06-21 23:20:28 · 217 阅读 · 0 评论 -
匿名和具名挂载
匿名挂载-v 容器内路径docker run -d -P --name nginx01 -v /etc/nginx nginx匿名挂载的缺点,就是不好维护,通常使用命令 docker volume维护具名挂载-v 卷名:/容器内路径docker run -d -P --name nginx02 -v nginxconfig:/etc/nginx nginx查看挂载的路径docker volume inspect nginxconfig# 怎么判断挂载的是卷原创 2020-06-21 23:20:19 · 296 阅读 · 0 评论 -
数据卷容器
命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。我们使用上一步的镜像:xiaoyequ/centos 为模板,运行容器 docker01,docker02,docker03,他们都会具有容器卷"/dataVolumeContainer1" "/dataVolumeContainer2"启动一个父容器docker01在dataVolumeContainer2新增文件docker run -it --name docker01原创 2020-06-21 23:20:12 · 121 阅读 · 0 评论 -
DockerFile
我们要研究自己如何做一个镜像,而且我们写的微服务项目以及springboot打包上云部署,Docker就是 最方便的。微服务打包成镜像,任何装了Docker的地方,都可以下载使用,极其的方便。流程:开发应用=>DockerFile=>打包为镜像=>上传到仓库(私有仓库,公有仓库)=> 下载镜像 => 启动 运行。还可以方便移植!什么是DockerFiledockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 构建步骤:原创 2020-06-21 23:20:03 · 375 阅读 · 0 评论 -
发布镜像及总结
DockerHub注册dockerhub https://hub.docker.com/signup,需要有一个账号查看登录命令[root@xiaoyequ /]# docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in to a Docker registry.If no server is specified, the default is defined by the daemon.Options:原创 2020-06-21 23:19:40 · 305 阅读 · 0 评论 -
Docker 网络
理解Docker0准备工作:清空所有的容器,清空所有的镜像docker rm -f $(docker ps -a -q) # 删除所有容器docker rmi -f $(docker images -qa) # 删除全部镜像测试获取当前的IP地址查看本地IP ip addrlo # 本机回环地址eth0 # 阿里云的私有IPdocker0 # docker网桥安装Kibana的问题:Kibana得指定ES的地址!或者我们 实际场...原创 2020-06-25 21:35:00 · 103 阅读 · 0 评论 -
Docker之--Link
思考一个场景,我们编写一个微服务,数据库连接地址原来是使用ip的,如果ip变化就不行了,那我们能不能使用服务名访问呢?jdbc:mysql://mysql:3306,这样的话哪怕mysql重启,我们也不需要修改配置了!docker提供了 --link 的操作不使用ip,使容器之间相互ping我们使用tomcat02,直接通过容器名ping tomcat01,不使用ip发现ping不通再启动一个tomcat03,但是启动的时候连接tomcat02docker run -d -P.原创 2020-06-26 11:27:41 · 674 阅读 · 0 评论 -
Docker 自定义网络
基本命令查看查看所有网络docker network ls所有网路模式网络模式 配置 说明 bridge模式 --net bridge 默认值,在Docker网桥 docker0 上为容器创建新的网络栈 none模式 --net none 不配置网络,用户可以稍后进入容器,自行配置 container 模式 --net container:name/id 容器和另外一个容器共享Network namespace。 kube原创 2020-06-26 18:52:40 · 309 阅读 · 0 评论 -
网络连通
docker0和自定义网络肯定不通,我们使用自定义网络的好处就是网络隔离:大家公司项目部署的业务都非常多,假设我们有一个商城,我们会有订单业务(操作不同数据),会有 订单业务购物车业务(操作不同缓存)。如果在一个网络下,有的程序猿的恶意代码就不能防止了,所 以我们就在部署的时候网络隔离,创建两个桥接网卡,比如订单业务(里面的数据库,redis,mq,全 部业务 都在order-net网络下)其他业务在其他网络。那关键的问题来了,如何让 tomcat-net-01 访问 tomcat1启动..原创 2020-06-27 11:28:56 · 362 阅读 · 0 评论 -
实战:部署一个Redis集群
创建网卡docker network create redis --subnet 172.38.0.0/16通过脚本创建六个redis配置for port in $(seq 1 6); \do \mkdir -p /mydata/redis/node-${port}/conftouch /mydata/redis/node-${port}/conf/redis.confcat << EOF >/mydata/redis/node-${port}/conf..原创 2020-06-27 13:26:50 · 428 阅读 · 0 评论 -
IDEA整合Docker
创建项目1、使用 IDEA 构建一个 SpringBoot 项目2、编写一个helloController原创 2020-06-27 18:23:56 · 235 阅读 · 0 评论