docker高级篇

2023-05-16

docker高级篇

一.dockerfile解析

1.dockerfile是什么
dockerfile是用来构建docker镜像的文本文件,是有一条条构建镜像所需的指令和参数构成的脚本
2.dockerfile常用保留字指令
FROM #基础镜像,当前镜像是基于哪个镜像的,指定一个已经存在的镜像模板,第一条必须是from
MAINTAINER #镜像维护者的姓名和邮箱地址
RUN #容器构建是需要运行的命令
EXPOSE #当前容器对外暴露的端口号
WORKDIR #指定在创建容器后终端默认登录进来的目录
USER #指定镜像以什么样的的用户去执行
ENV #用来在构建镜像过程中设置环境变量
ADD #将宿主机的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY #拷贝文件和目录到镜像中
VOLUME #容器数据卷,用于数据保存和持久化工作
CMD #指定容器启动后要干的事
ENTRYPONIT #指定一个容器启动是要运行的命令
3.实例
#创建dockerfile文件
vim Dockerfile
FROM centos
MAINTAINER heber<heber@123.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim
RUN yum -y install vim
#安装ifconfig
RUN yum -y install net-tools
#安装Java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#添加Java包
ADD Jdk-8u171-linux-x64.tar.gz /usr/local/java
#配置Java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:PATH
EXPOSE 8080
CMD echo $MYPATH
CMD echo 'success......ok'
CMD /bin/bash
4.构建
docker build  -t 镜像名字:tag .

二.docker网络

1.查看docker网络模式
docker network ls 
2.docker网络能干什么
容器间的互联和通信以及端口映射
3.网络模式
NETWORK ID     NAME      DRIVER    SCOPE
1677316bdb64   bridge    bridge    local
00245e67ea1c   host      host      local
0f92e90b63c4   none      null      local
bridge	#为每一个容器分配,设置ip,并将容器连接到docker0
host	#容器不会虚拟出自己的网卡,配置自己的ip,而是用宿主机的ip和端口
none	#容器有独立的network namespace ,但是并没有对其进行网络分配
container #共享一个ip

三.docker_compose容器编排

1.是什么
docker_compose是docker官方开源项目,负责实现对docker容器集群的快速编排,多服务管理工具
2.能干嘛
用来管理容器实例
compose允许用户通过一个单独的docker_compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目
3.去哪里下
#官网下载
https://docs.docker.com/compose/install
#安装
curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
#测试安装
docker-compose version
#卸载
rm -f /usr/local/bin/docker-compose
4.conpose核心概念
#一个文件
docker-compose.yml
#两大要素
服务	#一个个应用容器实例
工程	#由一组关联的应用容器组成的完整业务单元,在docker-compose.yml文件中定义
5.compose常用命令
docker-conpose -h #查看帮助
docker-conpose up #启动所有docker-compose服务
docker-conpose up -d #启动所有docker-compose服务并后台启动
docker-conpose down #停止并删除容器,网络,卷,镜像
docker-conpose exec yml里面的服务id #进入容器内部实例
docker-conpose ps #展示当前编排过的运行的所有容器
docker-conpose top #展示当前编排过的容器进程
docker-conpose logs yml容器id #查看容器输出日志
docker-conpose config #检查配置
docker-conpose config -q #检查配置,有问题的才输出
docker-conpose start #启动服务
docker-conpose restart #重启服务
docker-conpose stop #停止服务
6.conpose编排微服务
#编写docker-compose.yml
vim docker-conpose.yml
version:"3" #版本
servers:
 microSerice:
 image:heber_docker:1.8 #选择镜像
 container_name:ms01 #名字
 ports: #端口
  -"6001:6001"
 volumes: #容器数据卷
  - /app/microSerice:/data
 networks: #网卡
  - atguigu_net
 depends_no: #备注需要的依赖
  - redis
  - mysql
  
redis:
 image:redis:6.0.8 #选择镜像
 ports: #端口
  -"6379:6379"
 volumes: #容器数据卷
  - /app/redis/redis.conf:/etc/redis/redis.conf
  - /app/redis/data:/data
 networks: #网卡
  - atguigu_net
 command:redis-server /etc/redis/redis.conf
 
mysql:
 image:mysql:5.7 #选择镜像
 environment:
  MYSQL_ROOT_PASSWORD:"123456"
  MYSQL_ALLOW_EMPTY_PASSWORD:"no"
  MYSQL_DATABASE:"db2022"
  MYSQL_USER:"heber"
  MYSQL_PASSWORD:"heber123"
 ports: #端口
  -"3306:3306"
 volumes: #容器数据卷
  - /app/mysql/db:/var/lib/mysql
  - /app/mysql/conf/my.cnf:/etc/my.cnf
  - /app/mysql/init:/docker-entrypoint-initdb.d
 networks: #网卡
  - atguigu_net
 command:--default-authentication-plugin=mysql_native_password #解决外部无法访问
 
networks: #创建网卡
 atguigu_net
7.启动
#验证一下
docker-conpose config -q
#启动
docker-conpose up / docker-conpose up -d
8.停止
docker-conpose stop

四.docker_portainer

1.portainer是什么
是一款轻量级的应用,它提供了图形化界面,用于方便管理docker环境,包括单机环境和集群环境
2.安装
#官网
https://www.portainer.io/
#安装
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
3.访问
http://192.168.0.119:9000/
admin/admin123.

run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer


##### 3.访问

```bash
http://192.168.0.119:9000/
admin/admin123.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker高级篇 的相关文章

随机推荐

  • 卡尔曼滤波 -- 从推导到应用(一)

    前言 卡尔曼滤波器是在估计线性系统状态的过程中 xff0c 以 最小均方误差为目的而推导出的几个递推数学等式 也可以从贝叶斯推断的角度来推导 本文将分为两部分 xff1a 第一部分 xff0c 结合例子 xff0c 从最小均方误差的角度 x
  • 卡尔曼滤波 -- 从推导到应用(二)

    该文是自我总结性文章 xff0c 有纰漏 xff0c 请指出 xff0c 谢谢 白巧克力 这部分主要是通过对第一部分中提到的匀加速小车模型进行位移预测 先来看看状态方程能建立准确的时候 xff0c 状态方程见第一部分分割线以后内容 xff0
  • LQR 的直观推导及简单应用

    本文主要介绍LQR的直观推导 xff0c 说明LQR目标函数J选择的直观含义以及简单介绍矩阵Q R的选取 xff0c 最后总结LQR控制器的设计步奏 xff0c 并将其应用在一个简单的倒立摆例子上 假设有一个线性系统能用状态向量的形式表示成
  • STM32学习路线-长图

    最近好好整理了一下学习STM32的路程 xff0c 做成了一个长图 xff1a STM32学习路线 xff0c 供初学者们参考一下
  • ROS 教程之 vision: 摄像头标定camera calibration

    在上一个ROS教程视觉文章中 xff0c 我们使用usb cam包读入并发布了图像消息 xff0c 但是图像没有被标定 xff0c 因此存在畸变 ROS官方提供了用于单目或者双目标定的camera calibration包 这个包是使用op
  • ROS 基础: 在同一个节点里订阅和发布消息

    在一些应用中 xff0c 可能有的人需要在同一个节点中实现订阅一个消息 xff0c 然后在该消息的回调函数中处理一下这些数据后再发布到另一个topic上 ROS answers中也有人有相同的疑问 xff0c 这里贴出Martin Peri
  • ROS : 修改ROS源代码(overlaying package)

    ROS官方或者其他个人提供了很多package供大家使用 xff0c 但是随着学习的深入 xff0c 很多人可能想去修改这些package的源代码 xff0c ROS提供了一种称之为overlaying的机制 它允许 ROS原有安装的pac
  • graph slam tutorial :从推导到应用3

    为了更好地理解graph based slam的过程 xff0c 本文以二维平面的激光SLAM为例子 xff0c 先简单介绍如何根据传感器信息构建图 xff0c 即图优化的前端 xff08 front end xff09 然后再针对上篇博客
  • graph slam tutorial : 从推导到应用1

    前言 SLAM问题的处理方法主要分为滤波和图优化两类 滤波的方法中常见的是扩展卡尔曼滤波 粒子滤波 信息滤波等 xff0c 熟悉滤波思想的同学应该容易知道这类SLAM问题是递增的 实时的处理数据并矫正机器人位姿 比如基于粒子滤波的SLAM的
  • graph slam tutorial :从推导到应用2

    在上一部分中通过一个例子大致了解了graph based slam的优化过程 在本篇博客中将提升一个层次 xff0c 对图优化的求解过程进行推导 由于博文关注的在图构建好以后 xff0c 如何调整机器人位姿使误差最下 因此 xff0c 本文
  • graph slam tutorial : g2o 的使用

    g2o全称general graph optimization xff0c 是一个用来优化非线性误差函数的c 43 43 框架 如果阅读了前几篇graph slam tutorial的博客 xff0c 再去读 g2o xff1a a gen
  • Monocular slam 的理论基础(1)

    前言 LSD SLAM和ORB SLAM的出现 xff0c 使得单目slam最近成为了研究热点 单目SLAM一般处理流程包括track和map两部分 所谓的track是用来估计相机的位姿 而map部分就是计算pixel的深度 xff0c 如
  • Monocular slam 中的理论基础(2)

    三角法求深度 xff08 triangulation xff09 在知道了相机的轨迹以后 xff0c 使用三角法就能计算某个点的深度 xff0c 在Hartley的 Multiple view Geometry 一书中第10章 第12章都是
  • svo: semi-direct visual odometry 论文解析

    SVO 从名字来看 xff0c 是半直接视觉里程计 xff0c 所谓半直接是指通过对图像中的特征点图像块进行直接匹配来获取相机位姿 xff0c 而不像直接匹配法那样对整个图像使用直接匹配 整幅图像的直接匹配法常见于RGBD传感器 xff0c
  • 想精通单片机开发,这些必备基础知识不可不掌握

    总体谈一谈对单片机学习的看法 1 我从不说51是基础 xff0c 如果我这么说 xff0c 也请把这句话理解为微机原理是基础 2 对51单片机的操作本质上就是对寄存器的操作 xff0c 对其他单片机也是如此 库只是一个接口 xff0c 方便
  • 从零开始手写 VIO

    前言 最近和高博合作推出了一个关于 VIO 的课程 xff0c 借此博客推荐下 这个课程的图优化后端是我们自己写的 xff0c 仅依赖 Eigen 实现后系统的精度和 ceres 以及 g2o 不相上下 个人感觉这个课程还是能学到不少东西
  • 如何用示波器测量串口波特率

    例如波特率为9600理解为 xff1a 单位时间内传输9600个码元 xff08 位 xff09 1s内可以传输9600位数 假如要测量波特率为9600 xff0c 则每一比特位的时间为 xff1a 1 9600 61 104us 一般示波
  • PHPstorm2018汉化方法

    PhpStorm 2018汉化包下载地址 xff1a https pan baidu com s 1sAPfpPrN3IvZSyGU2kFWmQ 8 将安装目录lib下的resources en jar文件删除 xff0c 然后将压缩包中的
  • CMake学习(3)—— 使用add_subdirectory()添加外部项目文件夹

    一般情况下 xff0c 我们的项目各个子项目都在一个总的项目根目录下 xff0c 但有的时候 xff0c 我们需要使用外部的文件夹 xff0c 怎么办呢 xff1f 例如 xff0c 在目录cxx utility example内的CMak
  • docker高级篇

    docker高级篇 一 dockerfile解析 1 dockerfile是什么 dockerfile是用来构建docker镜像的文本文件 xff0c 是有一条条构建镜像所需的指令和参数构成的脚本 2 dockerfile常用保留字指令 F