首页 > 其他分享 >docker_2

docker_2

时间:2023-08-11 14:13:24浏览次数:35  
标签:容器 home 挂载 镜像 docker root

容器数据卷

数据卷介绍

假如数据都在容器里面,那么删掉容器如何让容器里的数据保存呢?

其实容器之间有一个数据共享技术,docker里面产生的数据可以同步到本地,这就是数据卷技术,也就是目录挂载,容器内的目录挂载到本地主机上,而容器之间也是可以数据共享的

数据卷的使用

直接挂载

查看目标文件夹文件

#开始绑定
>docker run -it -v C:\Users\22729\Desktop\code:/home centos
[root@04dd50b41d4c /]# cd home
[root@04dd50b41d4c home]# ls
c.c  python
[root@04dd50b41d4c home]# ll
bash: ll: command not found
[root@04dd50b41d4c home]# ls -l
total 0
-rwxrwxrwx 1 root root   56 Apr  5 06:42 c.c
drwxrwxrwx 1 root root 4096 Mar 26 08:57 python
#随意创建一个文件
[root@04dd50b41d4c home]# touch 1
[root@04dd50b41d4c home]# ls
1  c.c  python
[root@04dd50b41d4c home]#
#查看得知,如下图
❯ docker inspect centos


具名挂载和匿名挂载

#具名挂载
❯ docker run -d -v centos:/home centos
3c0370241a875201518ac14c12b705309157f0ed61110a34ae4163e0311f5bd3
❯ docker volume ls
DRIVER    VOLUME NAME
local     centos

#匿名挂载介绍
❯ docker run -it -v /home centos
[root@b89004534f22 /]#eixt
❯ docker volume ls
DRIVER    VOLUME NAME
local     55808ce5a31cee183ced1ada6dd7623fe30837bbba25ce4a2c429d5f6d075e19
#这种就是匿名挂载,也就是只写了容器内的路径,而没有写本地主机的路径
#win下暂时未找到此路径在哪,win的子系统显示未有
#假如指定了目录,docker volume ls查看不到
#不建议在win下使用具名和匿名挂载,因为找不到默认路径


#三种挂载方式,具名,匿名,指定路径
-v 容器内路径        #匿名
-v 卷名:容器内路径    #具名
-v /宿主机路径:容器路径 #指定路径挂载
#通过 -v 容器内路径:ro rw 改变读写权限
ro #readonly 只读 
rw #readwrite 可读可写 
docker run -d -v juming:/home:ro centos 
docker run -d -v juming:/home:rw centos
#ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!Dockerfi

Dockerfile

dockerfile是用来构建docker镜像的文件,也叫命令脚本,通过命令脚本可以生成镜像

构建过程

  • 每个保留关键字,都必须是大写
  • 执行是从上到下
  • 表示注释

  • 每个指令都会创建提交一个新的镜像并提交
# dockerfile常用指令
FROM       # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的, 姓名+邮箱
RUN        # 镜像构建的时候需要运行的命令
ADD        # 步骤,tomcat镜像,这个tomcat压缩包!添加内容 添加同目录 
WORKDIR    # 镜像的工作目录
VOLUME     # 挂载的目录
EXPOSE     # 保留端口配置
CMD        # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD    # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。 
COPY       # 类似ADD,将我们文件拷贝到镜像中 
ENV        # 构建的时候设置环境变量
  
#构建
docker build -f 文件路径 -t:[tag] .
CMD         # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT  # 指定这个容器启动的时候要运行的命令,可以追加命令

详情:https://www.runoob.com/docker/docker-dockerfile.html

发布自己的镜像

地址:https://hub.docker.com/

登录使用docker login详情—help

提交push镜像

# 会发现push不上去,因为如果没有前缀的话默认是push到官方的library 
# 解决方法 
# 第一种build的时候添加你的dockerhub用户名,然后在push就可以放到自己的仓库了 
docker build -t chengcoder/mytomcat:0.1 . 
# 第二种使用docker tag 
# 然后再次push 
docker tag 容器id chengcoder/mytomcat:1.0 
# 然后再次push

也可以提交到阿里云上,官网有详细教程https://cr.console.aliyun.com/repository/

标签:容器,home,挂载,镜像,docker,root
From: https://www.cnblogs.com/NingYaFelix/p/17622818.html

相关文章

  • 5 个你还不知道的 Docker 命令
    您刚刚开始Docker之旅并认为您了解一切?系好安全带,学习一些奇特的新命令,给您的朋友和老板留下深刻的印象!1.dockersystemdf如果您像我一样,您可能会左右构建docker容器,而没有真正考虑所有内容的存储位置。想要了解您的容器、图像、卷和缓存工件需要多少存储空间?只需运行一下dock......
  • docker_1
    入门Docker概述Docker为何要出现由于传统的方式,不能打包环境,而环境的配置也及其繁琐,及其耗费时间,而docker就可以非常有效的解决这个问题docker的思想来源于集装箱,docker的核心思想!打包装箱,也就是说每个箱子都是隔开的,docker通过这种机制可以吧服务器利用到极致docker为什么......
  • Docker与DevOps的无敌组合,引爆你的创新潜能
    ......
  • centos7中用docker部署java项目调用mvs海康相机拍照踩坑
    一、海康机器人官网下载MVSV2.1.2(Linux)二、解压后将tar.gz包传入centos7中三、解压并安装MVS 安装 四、执行MVS,并查看环境变量是否正确安装后会新增/opt/MVS目录,进入/opt/MVS/bin目录执行./MVS 执行完成后查看是否已经自动添加环境变量,执行vi/etc/profile,会自动......
  • docker-compose搭建Ftp服务器
    version:"3"services:ftp:image:fauria/vsftpdcontainer_name:vsftpdhostname:ftpprivileged:trueuser:rootports:-"21:21"-"20:20"-"21100-21110:21100-21110"......
  • Docker容器编排
    docker-composecompose安装Compose简介Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。Compose使用的三个步骤:使用Dockerfile定义......
  • 使用eNSP,VMware搭建网络平台,Linux中通过Docker搭建应用管理系统,在eNSP中的主机里可以
    课程设计要求拓扑图部署过程总结1.课程设计要求使用eNSP,VMware搭建网络平台,Linux中通过Docker搭建应用管理系统,在eNSP中的主机里可以访问。2.拓扑图![](C:\Users\31223\Pictures\Screenshots\屏幕截图2023-08-10133154.png)设备:云,主机(client机)3.部署过程实验1:docke......
  • M1版本Mac通过Docker安装RocketMQ
    前言上一篇我通过docker安装到mac上的rocketmq,三个容器都启动成功,却无法通过ip:port进行访问,考虑到我的Mac版本是M1的原因,这次我们通过官网的项目重新编译来解决这个问题步骤一gitclonehttps://github.com/apache/rocketmq-docker.git 步骤二cdimage-buildshbuild-ima......
  • 软件测试|docker ps命令 管理和监视容器的利器
    简介Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。Docker提供了许多命令行工具,其中之一是dockerps命令。本文将深入介绍dockerps命令,解释其用途、参数和功能,以及如何使用该命令来管理和监视运行中的Docker容器。dockerps在Docker中,容器是运行应用程序的独立环境......
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南
    简介Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是dockerrun,用于创建和启动容器。本文将详细解析dockerrun命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。dockerrun在Docker中,容器是运行应用程序的独立环境。do......