[知识总结] 【编程不良人】Docker学习总结(二)
作者:精品下载站 日期:2021-01-23 10:37:00 浏览:81 分类:编程开发
本博客将记录博主学习b站编程不良人的Docker的总结,虽然以前也有使用过docker,但都是一些最基本的用法,这次将会全面认真的学习Docker。
09:Docker镜像分层原理
- 镜像定义:
一个镜像代表一个软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时的所需的库、环境变量和配置文件 - 镜像为什么那么大:
因为一个软件镜像不仅仅是原来的软件包,而是包含软件包所需的操作系统依赖、软件自身依赖以及自身软件包组成(及包含了软干个公共镜像) - 为什么docker镜像采用分层镜像原理
注意:docker在设计镜像时每一个镜像都是有n个镜像共同组成 ==>镜像像是一个画卷一层层组成,每层都是一个镜像
原理:UnionFS 联合文件系统。 docker镜像实际是由一层一层的文件系统组成。
采用UnionFS 联合文件系统最大的一个好处就是资源共享,采用分层机制实现基础层共享,从而减小docker仓库整体体积
- 所以,前期拉取的镜像越来越多,后期拉取就快
10:Docker中容器之间网络配置
- 为什么提供网络功能:
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 - docker容器与操作系统通信机制
- docker 网络使用
注意:一般在使用docker网桥(bridge)实现容器与容器通信时,都是站在一个应用的角度进行容器通信 - 查看docker所有 配置
docker network ls docker inspect 网桥名称
- 创建自定义网桥
docker create NAMES(网桥名称) ===> docker create -d bridge ems(网桥名称)
- 例子:
docker run -d -p 8082:8080 -network ems --name mytomcat01 tomcat:8.0-jre8 docker run -d -p 8082:8080 -network ems --name mytomcat01 tomcat:8.0-jre8
注意,一但在启动容器时指定了网桥之后,日后可以在任何这个网桥关联的容器中使用容器名字进行与其他容器通信(docker将容器名字与该容器划分的子网做了映射)
172.18.02 ==> mytomcat01 , 172.18.0.3 ==> mytomcat02
使用docker run 指定 --network 网桥时网桥必须存在
11:docker 核心架构图
12:docker安装服务
- 安装哪个服务去docker hub搜索对应服务的镜像
- 点击进入该服务docker hub
- 首先看描述(description),如何使用images
- 其次找版本(tags)
安装mysql
- 启动:(后台启动,设置端口,启动时给root用户指定密码,使用数据卷进行数据持久化,以修改之后的配置文件启动)
docker pull mysql docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxx -v mysqldata:/var/lib/mysql -v mysqlconfig:/etc/mysql --name mysql80 mysql
安装tomcat
- 下载tomcat服务
docker pull tomcat:8.0-jre8
- 启动tomcat服务(将部署应用目录和配置文件目录通过数据卷挂在宿主机系统)
注意:部署web应用在容器中目录为/usr/local/tomcat/webapps
配置文件 /usr/local/tomcat/confdocker run -d -p 8081:8080 -v tomcatApps:/usr/local/tomcat/webapps -v confs:/usr/local/tomcat/conf --name tomcat8 tomcat:8.0-jre8
注意修改配置文件里的端口不会对已创建的tomcat生效,需新创建一个
安装redis
- 下载镜像
docker pull redis
- 启动,并开启redis持久化(持久化生成aof文件会被放入容器中/data目录中),
docker run -d -p 6379:6379 --name redis redis redis-server --appendonly yes
- 以自定义配置文件略麻烦...
安装rabbitmq
- 下载镜像
docker pull rabbitmq
- 启动镜像,挂载配置目录
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v rabbitmq:/etc/rabbitmq/ --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq
- 启动rabbitmq_management管理界面
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
- 修改配置文件,开启统计数据
# vim /var/ilb/docker/volumes/rabbitmq/_data/conf.d/management_agent.disable_metrics_collector.conf management_agent.disable_metrics_collector = false # 默认为true,解决Stats in management UI are disabled on this node
- 重启rabbitmq
安装ES & Kibana
- 下载镜像
docker pull elasticsearch:7.10.1
- 预先配置(修改虚拟内存大小)
vim /etc/sysctl.conf 加入如下配置:vm.max_map_count=262144 启用配置: sysctl -p
- 单节点启动,设置jvm并将数据、配置、插件持久化:
docker network create esnetwork 建立网桥 docker run -d --name es --net esnetwork -p 9200:9200 -p 9300:9300 -v esdata:/usr/share/elasticsearch/data -v esconfig:/usr/share/elasticsearch/config -v esplugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:7.10.1
- 安装Kibana
docker pull kibana:7.10.1
- 启动Kibana
docker run -d -p 5601:5601 --link es:elasticsearch --name kibana --net esnetwork kibana:7.10.2
13:dockerfile
- 定义:
用来帮助我们自己构建一个自定义镜像,dockerfile成为镜像构建文件 描述文件 - 为什么要存在dockerfile
日后用户可以将自己应用打包成镜像,这样就可以让我们应用进行容器运行 - dockerfile 构建镜像原理
- dockerfile 基本命令
示例
- FROM
FROM centos:7
- RUN
RUN yum install -y vim #构建镜像时安装vim RUN ["yum","install","-y","vim"] #第二种写法
- EXPOSE
EXPOSE 5672 EXPOSE 15672
- WORKDIR 指定进入容器后在哪个目录下,可以写多个(绝对+相对累加)
WORKDIR /data WORKDIR bb #实际进入容器目录为/data/bb,没有也会自动创建
- COPY (将某文件拷贝到打包后的目录中 COPY src dest)
COPY aa.txt /data/bb
- RUN
RUN xxx-8.0.tar.gz /data/bb # 拷贝进入的同时还会自动解压 RUN mv xxx-8.0 xx # 可以把自动解压后的文件夹重命名 WORKDIR yy # 甚至把进入容器后的目录修改
- VOLUME 设置可以被挂载的容器目录
VOLUME /data/bb/tomcat/webapps
- ENV 设置公共的环境变量
ENV BASE_DIR /data/bb VOLUME $BASE_DIR/tomcat/webapps
- ENTRYPOINT & CMD (用数组形式)
通常ENTRYPOINT后的shell命令写固定死的,如java -jar
CMD后用来接收run容器时传入的参数,如jar包名称ENTRYPOINT ["java","-jar"] CMD ["ems.jar"] ... docker run xxx:01 aaa.jar #此时执行的为 java -jar aaa.jar
014:Dockerfile构建springboot应用
- 打包项目 : demo.jar
- 在服务器中创建dockerfile上下文目录 context
mkdir demo # 这个目录作为 context touch Dockerfile # 在context目录中创建Dockerfile文件
- 上传应用jar到context目录
- 编写Dockerfile
FROM openjdk:8-jre # 基于哪个镜像构建 WORKDIR /app # 定义进入容器时默认位置,接下来后序操作工作位置 ADD demo.jar app.jar # 将上下文中名字为 demo.jar复制到工作目录,同时修改为app.jar EXPOSE 8081 # 暴露8081端口 ENTRYPOINT ["java","-jar"] # 启动应用固定命令 CMD ["app.jar"] # 执行jar名称
- 执行构建并运行
docker build -t demo:01 docker run -d -p 8081:8081 --name demo demo:01
猜你还喜欢
- 03-29 [编程相关] Winform窗体圆角以及描边完美解决方案
- 03-29 [前端问题] has been blocked by CORS policy跨域问题解决
- 03-29 [编程相关] GitHub Actions 入门教程
- 03-29 [编程探讨] CSS Grid 网格布局教程
- 10-12 [编程相关] python实现文件夹所有文件编码从GBK转为UTF8
- 10-11 [编程算法] opencv之霍夫变换:圆
- 10-11 [编程算法] OpenCV Camshift算法+目标跟踪源码
- 10-11 [Python] python 创建 Telnet 客户端
- 10-11 [编程相关] Python 基于 Yolov8 + CPU 实现物体检测
- 03-15 [脚本工具] 使用go语言开发自动化脚本 - 一键定场、抢购、预约、捡漏
- 01-08 [编程技术] 秒杀面试官系列 - Redis zset底层是怎么实现的
- 01-05 [编程技术] 《Redis设计与实现》pdf
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag