Docker基础(二)

文章目录

      • 1. 可视化工具
      • 2. Docker镜像详解
        • 2.1 镜像commit
      • 3. 容器数据卷
        • 3.1 使用数据卷
        • 3.2 安装mysql实操案例
        • 3.3 Dockerfile挂载数据卷
        • 3.4 具名挂载和匿名挂载
        • 3.5 数据卷容器
      • 4. DockerFile
        • 4.1 构建一个自己的centos
        • 4.2 编写DockerFile步骤
      • 5. 发布镜像
        • 5.1 共有仓库
        • 5.2 私有仓库
      • 6. 总结

1. 可视化工具

docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

2. Docker镜像详解

docker镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的所有内容,包含代码、运行时、库、环境变量和配置文件。
Docker镜像下载时分层下载,不同镜像会复用一些底层的文件。
在修改容器内容重新生成一个image时会以追加的方式在原来的image基础上追加新的内容,可以通过docker inspect 镜像id的方式查看,具体的追加内容在"RootFS"部分。

2.1 镜像commit
# 提交镜像的副本,让这个容器产生一个新的镜像
docker commit   
-m="提交的信息"
-a="作者"docker run -it tomcatdocker exec -it 容器id /bin/bash修改内容docker commit -a="zxs" -m="tomcat1" 容器id zxstomcat:1.0

3. 容器数据卷

将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求是希望能够持久化的!
所以我么希望容器之间有可能可以共享数据,Docker容器产生的数据,如果不通过docker commit生成新的image,使得数据持久化存储下来,那么当容器删除后,数据也没有了,这样是不合理的!
为了能够使得docker中的数据持久化存储下来我们可以使用卷!让数据挂载到本地!这样数据就不会因为容器删除而丢失!

容器数据卷:容器的持久化,以及容器间的继承和数据共享!

3.1 使用数据卷
# /宿主机路径:/容器路径
# 会自动创建对应的文件夹
docker run -it -v /home/ceshi:/root centos bin/bash
# 查看"Mounts"部分内容可看到关联情况
docker inspect 容器id

删除容器后数据依旧存在
容器再次重新挂载回来,容器内包含原来的数据

3.2 安装mysql实操案例
docker pull mysql:5.7docker run -d -p 3310:3306 \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql01 \
mysql:5.7

3.3 Dockerfile挂载数据卷

DockerFile是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本。

# 编辑内容
vim dockerfile1
# 构建成一个镜像
# -t 输出的镜像名 . 代表执行
docker build -f dockerfile1 -t zxs/centos .
# 基于镜像新建运行一个容器
docker run -it zxs/centos /bin/bash

3.4 具名挂载和匿名挂载
# 指定目录挂载
# -v 宿主机目录:容器内目录# 匿名挂载
# -v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx# 匿名挂载的缺点就是不好维护,通常使用命令docker volume维护
docker volume ls# 具名挂载
# 其实相当于对匿名挂载的卷名自定义一个名字
# -v 卷名:/容器内路径
docker run -d -P --name nginx02 -v nginxconfig:/etc/nginx nginx
# 查看卷目录
docker volume ls
# 查看卷的元数据信息
docker volume inspect nginxconfig

3.5 数据卷容器

容器数据卷:容器的持久化
数据卷容器:是一个容器,当作一个持久化的卷

如果基于同一个image启动两个容器,容器内的数据挂载不互通
数据卷容器:容器之间的数据是可以继承的(父-子)

# 启动一个容器
docker run -it --name docker01 xxb/centos
# 基于docker01启动一个容器,会基于dockers01中数据卷的内容
# 实现多个相同容器共享数据,将容器作为一个父数据卷,
# 其他容器来挂载到这个父数据卷实现共享
docker run -it --name docker02 --volumes-from docker01 xxb/centos
# 启动docker03
docker run -it --name docker03 --volumes-from docker01 xxb/centos
# 停止或者删除docker01不会影响docker02,docker03

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止
存储在本机的文件则会一直保留

4. DockerFile

Nginx,Mysql这些镜像的来源是啥呢?
流程:开发应用=>DockerFile=>打包成镜像=>上传到仓库=>下载镜像=>启动运行
DockerFile是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本。
构建步骤:
1、编写DockerFile文件
2、docker build 构建镜像
3、docker run

4.1 构建一个自己的centos
# 阿里云官方的centos不完整很多命令工具没有
vim dockerfile-mycentos
FROM centos
MAINTAINER zsq<2635718400@qq.com>ENV MYPATH /usr/local
WORKDIR $MYPATH# 在基础的centos基础上安装vim net-tools
RUN yum -y install vim
RUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATH
CMD echo "------end----"
# 构建自己的镜像
-f 指定dockerfile文件
-t 输出的镜像文件名:版本号
. 执行docker build -f dockerfile-mycentos -t mycentos:1.0 .

一般一个项目都在一个文件夹中,我们需要在项目目录下编辑一个Dockerfile文件即可,build不需要-f来指定,默认寻找项目目录下的Dockerfile文件来构建镜像。

4.2 编写DockerFile步骤
  1. 基于一个空的镜像
  2. 下载需要的环境 ADD
  3. 复制宿主机文件到容器内 COPY
  4. 执行环境变量的配置 ENV
  5. 配置工作目录 WORKDIR
  6. 执行一些Linux命令 RUN
  7. 日志CMD
  8. 端口暴露 EXPOSE
  9. 挂载数据卷 VOLUMES

这个过程就是部署项目的过程,可以通过dockerfile自动化构建。

可以通过docker history imageid可以查看镜像如何构建

5. 发布镜像

5.1 共有仓库

注册dockerhub
https://hub.docker.com/signup

docker login --help
docker login -u zsq
# 上传之前打标签
docker tag 镜像id zsq/tomcatnew:1.0
# 上传
docker push zsq/tomcatnew:1.0
docker logout

5.2 私有仓库

可以使用阿里云镜像服务
镜像加速器:https://cr.console.aliyun.com/cn-beijing/instances/mirrors
个人镜像服务实例:https://cr.console.aliyun.com/cn-beijing/instances

6. 总结

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/703813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过信息化系统降低连锁品牌企业的财务成本

最近身边几个做连锁品牌的朋友问&#xff0c;能不能通过信息化系统降低连锁管理门店的财务成本&#xff0c;让整体的运营合法合规&#xff0c;降低税收成本。今天商淘云和大家分享如何通过信息化系统降低连锁管理门店的财务成本。 传统的连锁门店是大家自动核对账目&#xff0c…

【云原生】Spring Cloud Gateway的底层原理与实践方法探究

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &#x1f680; 本…

fly-barrage 前端弹幕库(2):弹幕内容支持混入渲染图片的设计与实现

如果弹幕内容只支持文字的话&#xff0c;只需要借助 canvas 绘图上下文的 fillText 方法就可以实现功能了。 但如果想同时支持渲染图片和文字的话&#xff0c;需要以下几个步骤&#xff1a; 设计一个面向用户的数据结构&#xff0c;用于描述弹幕应该渲染哪些文字和图片&#x…

应急响应-常规处置办法

网站中被植入Webshell&#xff0c;通常代表着网站中存在可利用的高危漏洞&#xff0c;攻击者利用这些漏洞&#xff0c;将Webshell写入网站&#xff0c;从而获取网站的控制权。一旦在网站中发现webshell文件&#xff0c;可采取以下步骤进行临时处置。 入侵确定时间 通过在网站…

迅为RK3568开发板驱动开发指南-输入子系统

《iTOP-RK3568开发板驱动开发指南》更新&#xff0c;本次更新内容对应的是驱动&#xff08;第十三篇 输入子系统&#xff09;视频&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 第13篇-输入子系统目录 第1篇 驱动基础篇 第2篇 字符设备基础 第3篇 并发与竞争 …

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题 前几天出了教程本地部署gogs&#xff0c;在后期运行时发现两个问题&#xff1a; 第一&#xff1a;邮件明明配置了&#xff0c;后台显示未配置&#xff0c;…

这家宠物品牌的内容运营怎么做的?太好玩儿了吧

养宠的朋友应该多多少少对“诚实一口”这个牌子有所耳闻&#xff0c;2018年诚实一口品牌正式立项&#xff0c;虽然不算经典品牌&#xff0c;但在国内也是小有名气的宠物品牌。今天媒介盒子想和大家聊的不是产品&#xff0c;而是想聊聊作为成立时间不长的国产宠粮品牌是如何凭借…

【数据结构】栈OJ题《用栈实现队列》(题库+解析+代码)

1. 前言 通过前面栈的实现和详解大家对队列应该有一定熟悉了&#xff0c;现在上强度开始做题吧 栈详解&#xff1a;http://t.csdnimg.cn/9Fsbs 本体的做题思路也可以参考上一篇文章&#xff0c;就是有一点点不同。 用队列实现栈&#xff1a;http://t.csdnimg.cn/V2qjW 2. …

小型内衣裤洗衣机哪个牌子好?四大顶尖内衣洗衣机测评分享

要知道&#xff0c;内衣裤可能会残留我们身体分泌的尿液&#xff0c;或者是没有擦干净的便便&#xff0c;以及其他的一些分泌物&#xff0c;据科学家研究发现&#xff0c;内衣裤是含有很多细菌和病毒的地方&#xff0c;如果将内衣裤和衣服放在一起洗&#xff0c;导致这些细菌附…

Docker基础篇(六) dockerfile体系结构语法

FROM&#xff1a;基础镜像&#xff0c;当前新镜像是基于哪个镜像的 MAINTAINER &#xff1a;镜像维护者的姓名和邮箱地址 RUN&#xff1a;容器构建时需要运行的命令 EXPOSE &#xff1a;当前容器对外暴露出的端口号 WORKDIR&#xff1a;指定在创建容器后&#xff0c;终端默认登…

《Docker 简易速速上手小册》第4章 Docker 容器管理(2024 最新版)

文章目录 4.1 容器生命周期管理4.1.1 重点基础知识4.1.2 重点案例&#xff1a;启动并管理 Python Flask 应用容器4.1.3 拓展案例 1&#xff1a;调试运行中的容器4.1.4 拓展案例 2&#xff1a;优雅地停止和清理容器 4.2 容器数据管理与持久化4.2.1 重点基础知识4.2.2 重点案例&a…

C++力扣题目 42--接雨水 84--柱状图中最大的矩形

42. 接雨水 力扣题目链接(opens new window) 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1]输出&#xff1a;6解释&#xff…

一键解锁本地大型语言模型!Ollama框架让你轻松运行Gemma

想要在本地运行大型语言模型吗&#xff1f; Ollama框架提供了这样的机会。 这个框架是专为在Docker容器中部署LLM而设计的&#xff0c;简化了部署和管理流程。 安装Ollama后&#xff0c;你只需执行一条命令&#xff0c;即可在本地运行开源大型语言模型。 它将模型权重、配置…

Less预处理器教程

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈 一、Less介绍 less官方文档 lesscss.org/ less中文文档 less.bootcss.com/ less是一种css预处理器&#xff0c;它扩展了css语言&#xff0c…

Docker复习笔记

Centos7安装Docker Docker官网:www.docker.com Docker官网仓库:hub.docker.com Docker文档是比较详细的 安装相关依赖 yum -y install gcc gcc-c yum install -y yum-utils 设置docker镜像仓库 yum-config-manager --add-repo https://download.docker.com/linux/centos/do…

OpenCV开发笔记(七十五):相机标定矫正中使用remap重映射进行畸变矫正

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/136293833 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子(红模仿…

网络设备和网络软件

文章目录 网络设备和网络软件网卡交换机交换机的三个主要功能交换机的工作原理第二层交换和第三层交换交换机的堆叠和级联 路由器路由器工作原理 网关网关的分类 无线接入点(AP)调制解调器网络软件 网络设备和网络软件 网卡 网络接口卡又称网络适配器&#xff0c;简称网卡。网…

【计算机网络】数据链路层--以太网/MTU/ARP/RARP协议

文章目录 一、以太网1.以太网帧格式2.MAC地址3.局域网的转发原理 二、MTU1.什么是MTU2.MTU对IP协议的影响3.MTU对UDP影响4.MTU对于TCP协议的影响 三、ARP协议1.ARP协议的作用2.ARP数据报的格式3.ARP协议的工作流程 一、以太网 “以太网” 不是一种具体的网络, 而是一种技术标准…

论文阅读:《High-Resolution Image Synthesis with Latent Diffusion Models》

High-Resolution Image Synthesis with Latent Diffusion Models 论文链接 代码链接 What’s the problem addressed in the paper?(这篇文章究竟讲了什么问题&#xff1f;比方说一个算法&#xff0c;它的 input 和 output 是什么&#xff1f;问题的条件是什么) 这篇文章提…

音视频剪辑|Windows|抽帧和合帧

什么是抽帧&#xff1f; FFmpeg 抽帧&#xff08;Extracting frames&#xff09;的作用是从视频文件中按需提取单张或多张静止图像&#xff08;帧&#xff09;&#xff0c;并将它们保存为图片文件&#xff08;如 JPEG、PNG 等格式&#xff09;。这一功能在以下场合十分有用&am…