docker容器技术(2)

news2024/10/1 12:28:01

docker容器数据卷

        什么是数据卷?

                在Docker中,数据卷(Data Volumes)是一种特殊的目录,可以在容器和主机之间共享数据。它允许容器内的文件持久存在,并且可以被多个容器共享和访问。

        数据卷的主要作用如下:

  1. 数据持久性:容器内的数据卷可以在容器被删除后仍然存在,确保数据的持久性。这对于需要长期存储数据的应用程序非常重要,如数据库。

  2. 数据共享:多个容器可以共享相同的数据卷,使它们能够访问和修改相同的数据。这对于构建分布式应用程序或共享配置文件等数据非常有用。

  3. 数据备份和恢复:数据卷可以方便地备份和恢复到其他位置,包括其他主机或云存储。这样可以确保数据的安全性,并且在需要时可以轻松地恢复数据。

  4. 数据交换:数据卷可以作为容器之间传输数据的中间介质。一个容器可以将数据写入数据卷,另一个容器可以读取并处理该数据。这对于构建复杂的应用程序架构非常有用。

使用数据卷时,需要创建一个数据卷,并将其挂载到容器中的指定路径。Docker提供了多种方式来创建和管理数据卷,包括命令行工具和Docker Compose等。

总之,数据卷是Docker中非常重要的概念,可以实现数据持久性、共享和交换,为容器化应用程序提供了更多的灵活性和可靠性。

 

配置数据卷 

配置宿主机数据卷,同时容器内部内容也会修改; 

第一步:查看所有容器进程   docker ps -a

第二步:配置数据卷 

docker run --name=容器名字 -d --restart=alaways -p 80:80 -v 容器目录:容器内部html目录镜像名

案例1: 如果目录不存在,会自动创建;

docker run --name=n01 -d --restart=alawys -p 80:80 -v /qy172/data/nginx/html:/usr/share/nginx/html nginx

 第三步:进入/qy172/data/nginx/html目录里,输入内容 vim index.html

第四步:使用IP地址访问80端口号;

修改容器内部内容,宿主机内容也会得到修改;

第一步:进入到容器内部 docker exec -it n01 /bin/bash

第二步:进入到/usr/share/nginx/html目录下;

第三步:在此次访问80端口号;

Docker应用部署

        docker部署mysql

第一步:拉去MySQL镜像  docker  pull mysql:版本号

第二步:创建容器;

docker run --name=m01 -d --restart=always -p 3307:3306 -v /qy172/data/mysql/log:/var/log/mysql -v /qy172/data/mysql/data:/var/lib/mysql -v /qy172/data/mysql/conf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root mysql:8.2.0

第三步:连接数据库客户端测试 ;

成功以后创建库,表添加数据,看看/qy72/data/mysql /data目录中是否获取到数据库中的库和表的数据;

注:我们这时要是把为m01的容器删除掉的话,再次创建容器,只是修改端口号把3307修改为3308的话,我们再去数据库创建新的数据库时,3307的数据库连接不上,但是3308只需创建数据库即可,数据不会丢失,实现了数据的持久性;

docker run --name=m01 -d --restart=always -p 3308:3306 -v /qy172/data/mysql/log:/var/log/mysql -v /qy172/data/mysql/data:/var/lib/mysql -v /qy172/data/mysql/conf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root mysql:8.2.0

docker部署tomcat

第一步:拉去tomcat镜像; docker pull tomcat:版本号;

第二步:创建容器; 

第三步:访问8080端口号;

解决方案:

第一步:进入到容器内部; docker exec -it t01 /bin/bash;

第二步:删除webapps文件;

 

 docker部署redis

第一步:拉去redis docker pull redis:版本号;

 

 第二步:创建容器;

注:如果数据卷挂载时,绑定的是文件--必须先创建该文件。目录不存在时可以自动创建;

创建/qy172/data/redis/redis.conf文件

创建容器

docker run --name=r01 -d -p 6379:6379 -v /qy172/data/redis/redis.conf:/etc/redis/redis.conf -v /qy172/data/redis/data:/data redis:latest redis-server /etc/redis/redis.conf

 

redis连接设置密码  /qy172/data/redis/redis.conf  中输入 requirepass root

自定义镜像

上面讲解的内容需要的镜像 都是从远程仓库拉取,我们能否把自己写的工程也变成一个镜像[运维工作者就可以从远程仓库拉取自己镜像]。可以的。 需要自定义镜像;

镜像制作

自定义镜像:提供两种方式:第一种:基于容器来制作镜像;第二种:通过dockerfile文件来制作镜像;

dockerfile的概念

  • Dockerfile是一个文本---任意一个镜像都是通过dockerfile来制作

  • 文件包含了一条条的指令

  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像

  • 对于开发人员:可以为开发团队提供一个完全一致的开发环境

  • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了

  • 对于运维人员:在部署时,可以实现应用的无缝跨平台移植

dockerfile关键字

FROM:基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from;

MAINTAINER:镜像维护者的姓名和邮箱地址;

RUN:容器构建时需要运行的命令;两种格式:shell格式;exec格式;RUN是在 docker build运行;

EXPOSE:当前容器对外暴露出的端口;

WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点;

USER:指定该镜像以什么样的用户去执行,如果都不指定。默认是root; 

ENV:用来在构建镜像过程中设置环境变量;

ADD:将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包;

CORY:类似于ADD,拷贝文件和目录到镜像中,将从构建上下文目录<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置;

Dockerfil案例1

第一步:拉去centos7镜像   docker pull centos:7;

第二步:编辑Dockerfile文件;/qy172/Dockerfile;
#基于某个镜像
FROM centos:7
#作者姓名和邮箱
MAINTAINER zhao<zhk166@126.com>
#工作目录
WORKDIR /usr
#打包镜像时需要执行的命令
RUN yum -y install vim
#镜像运行容器时要执行的命令
CMD /bin/bash
第三步:构建镜像

docker build -f Dockerfile -t xc_asd:1 .

-f:表示dockerfile文件
-t: 镜像名称版本号 
.: 必须加上

第四步:创建容器

docker run -it --name=xc  xc_asd:1   直接进入uer目录

 

可以使用vim编辑器;

 

Dockerfile案例2

第一步:先创建一个SpringBoot项目  添加Web依赖;

第二步:写一个简单的controller层;

第三步:将项目打成jar包;在配置文件application.properties配置端口号

第四步:配置Dockerfile文件内容;

FROM java:8
ADD docker-0.0.1-SNAPSHOT.jar docker01.jar
EXPOSE 8080
CMD java -jar docker01.jar

找到文件路径,将这两个文件托到 /qy172/springboot目录下

 根据Dockerfile制作镜像

docker build -f Dockerfile -t app:1 .

启动并做端口号映射

docker run --name=app  -d -p 8080:8080 app:1

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

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

相关文章

Pycharm 配置Django 框架

Pycharm 配置Django 框架 一、创建第一个django项目 先在自己所在盘创建一个文件夹”projectDjango“ 二、打开pycharm专业版&#xff0c;打开刚刚新建的“projectDjango”项目。 三、打开菜单栏“File"->“Settings” 选择自己安装的python版本 四、安装Django库 1.点…

浅浅的画一个STDP的图像吧

stdp最重要的是两个窗口函数 根据这个方程我们刻画出他的轨迹&#xff0c;代码如下 import numpy as np import matplotlib.pyplot as plt# 定义STDP参数 tau_pos 30 # 正向突触权重变化的时间常数 tau_neg 30 # 负向突触权重变化的时间常数 A_pos 0.1 # 正向突触权重变…

解决谷歌浏览器,每次重启都重置所有设置的问题

一、问题&#xff1a; 修改谷歌浏览器的设置 关闭浏览器再打开设置页面后&#xff0c;会显示&#xff08;部分设置已重置Chrome检测到您的部分设置被其他程序篡改了&#xff0c;因此已将这些设置重置为原始默认设置。了解详情&#xff09; 之前的设置被重置了 二、解决 创建—…

Python入门必学:print函数--从基础语法到高级用法

Python入门必学&#xff1a;print函数–从基础语法到高级用法 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您…

1.0 RK3399项目开发实录-Ubuntu环境搭建(物联技术666)

1.下载Ubuntu所需的版本&#xff1a;Index of /releases 2.安装vmplayer:Download VMware Workstation Player | VMware 3.安装Ubuntu时&#xff0c;磁盘空间尽量大些&#xff0c;开发板系统包都比较大&#xff0c;避免存不下&#xff0c;建议空间100G。 关闭Ubuntu自动更新…

MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎: 1.介绍 1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询 2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能 MYSQL的核心,就是存储引擎 3>同样的,用户也可以根据自己的需要进行选择,更改自己需要…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

Unity类银河恶魔城学习记录7-9 P75 Saw spin sword源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

数据可视化--了解数据可视化和Excel数据可视化

目录 1.1科学可视化&#xff1a; 可视化是模式、关系、异常 1.2三基色原理&#xff1a; 三基色:红色、绿色和蓝色 1.3Excel数据可视化 1.3.1 excel数据分析-13个图表可视化技巧 1.3.2 excel数据分析-28个常用可视化图表&#xff08;video&#xff09; 1.3.3Excel可视化…

DM数据库学习之路(十六)DEM部署DM8DPC集群

DEM部署DPC集群 DPC准备工作 在所有安装DPC服务器上部署dmagent&#xff0c;dmagent的运行环境需要依赖JAVA环境&#xff0c;JAVA版本必须为JAVA1.8。 创建用户 所有安装DPC服务器&#xff0c;手工建dmdba用户 # groupadd dinstall # useradd -g dinstall -d /home/dmdba…

PHP中的飞碟运算符、取反运算符、对比非ASCII字符串、对比浮点数操作

对比浮点数 在电脑里存储的浮点数可能会和输入的值有些许差异&#xff0c;比如输入的是10.0&#xff0c;但存储的是10.00001. 在比较两个浮点数是否相等时可以计算下两个数的差值&#xff0c;然后查看下两数之差是否小于可以接受的阈值&#xff0c;如果要求精度在小数点后5位的…

【Spring Boot 源码学习】深入 BootstrapContext 及其默认实现

《Spring Boot 源码学习系列》 深入 BootstrapContext 及其默认实现 一、引言二、往期内容三、主要内容3.1 BootstrapContext3.1.1 源码初识3.1.2 get 方法3.1.3 getOrElse 方法3.1.4 getOrElseSupply 方法3.1.5 getOrElseThrow 方法3.1.6 isRegistered 方法 3.2 ConfigurableB…

搜维尔科技:用于运动科学的 OptiTrack,范围标记、步态捕捉!

OptiTrack 系统提供世界领先的测量精度和简单易用的工作流程&#xff0c;为研究人员和生物力学师的研究提供理想的 3D 跟踪数据。 对所有主要数字测力台、EMG 和模拟设备的本机即插即用支持为研究人员提供了在 Visual3D、MotionMonitor、MATLAB 和其他第三方生物力学软件包中进…

leetcode有效的括号-中等

题目描述 解题思路 不要被事例骗到&#xff0c;没有事例中写的那么简单&#xff0c;其中还包括&#xff08;[ ]&#xff09;这种例子。如果是计算机本专业的同学来说&#xff0c;一眼看出来&#xff0c;需要使用栈的数据结构。在python中需要使用列表进行。如果匹配的是左括号…

这几个Python内置函数你都知道吗

divmod() divmod() 是一个 Python 内置函数&#xff0c;用于同时返回商和余数。它接受两个参数&#xff0c;第一个参数是被除数&#xff0c;第二个参数是除数&#xff0c;返回一个包含两个值的元组&#xff0c;第一个值是商&#xff0c;第二个值是余数。 示例用法如下&#…

Linux使用Docker部署Nacos容器并结合内网穿透实现公网访问本地服务

文章目录 推荐1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Plik 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff…

计算机组成原理 — 存储器(2)

高速缓冲存储器 大家好呀&#xff01;我是小笙&#xff0c;由于存储器这部分章节内容较多&#xff0c;我分成二部分进行总结&#xff0c;以下是第二部分&#xff0c;希望内容对你有所帮助&#xff01; 概述 目的&#xff1a;避免CPU空等现象 原理&#xff1a;程序访问的局部…

基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 .................................................................. load yolov2.mat% 加载…

【Docker】03 容器操作

文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器&#xff08;打包成镜像&#xff09;2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…

机器学习理论知识学习

机器学习介绍 让机器有能力去根据数据学习 不是人类的if和else控制 机器学习分类 监督学习: 最成熟,落地案例最多。我们的视觉处理大多数都是监督学习。 小孩学习,类似监督学习,这是猫,这是狗,这是兔子 非监督学习:找到不同类型的数据,kmeans 聚类算法 帮助梳理不…