【docker】之基础篇二

这篇具有很好参考价值的文章主要介绍了【docker】之基础篇二。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、docker的数据管理

在生产环境中使用docker,需要对数据进行持久化,或者多个容器之间进行数据共享。
容器中管理数据的两种方式:
数据卷:容器内的数据直接映射到本地主机环境
数据卷容器:使用特定的容器维护数据卷

1、数据卷

数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似LINUX的mount行为。
1.创建数据卷

[root@gang ~]# docker volume create -d local test
数据卷的位置:
[root@gang ~]# ll /var/lib/docker/volumes/

docker volume 还支持 inspect(查看详细信息),ls(列出已有数据卷),prune(清理无用数据卷),rm(删除数据卷)等。
2、绑定数据卷
使用旧的-v标记可以在容器内创建一个数据卷:

docker run -d -P --name=web -v /web:/opt/web centos:7

这种挂载数据卷的默认权限是读写(rw),用户也可以通过ro指定为只读:
加了:ro之后,容器内对挂载数据卷中的数据也就无法修改了。

2、数据卷容器:

如果用户需要在多个容器之间共享一些可持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载的。

创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到 /dbdata:

[root@gang ~]# docker run -it -v /dbdata --name=dbdata centos:7

然后在其他容器中使用–volumes-from来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷。

[root@gang /]# docker run -it --volumes-from dbdata --name=db2 centos:7

可以发现这几个容器共享同一个目录

如果删除了挂载的容器dbdata,数据卷并不会自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载它的容器时显式使用docker rm -v命令来指定同时删除关联的容器。

二、端口映射与容器互联

1.从外部访问容器应用
在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。
要让外部访问这些应用时,可以通过 -P或-p参数来指定端口映射。
使用-P大写标记时,docker会随机映射一个高端端口到内部容器开放的网络端口。
-p:指定可以映射的端口。

[root@redhat nginx]# docker run -d -P training/webapp python app.py

1、映射到所有接口的地址:

[root@redhat nginx]# docker run -d -p 5000:5000 training/webapp python app.py

2、映射到指定地址的指定端口:

[root@redhat nginx]# docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

3.映射到指定地址的任意端口:

[root@redhat nginx]# docker run -d -p 127.0.0.1::5000 training/webapp python app.py

容器之间的通信

使用link方式让容器之间

三、Docker查看日志

docker logs 容器名字/id

docker logs -f -tail=10 mytomcat
docker logs -t --since=“2024-01-18” mytomcat

--since :此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f:查看实时日志。
-t:查看日志产生的日期
-tail-10:查看最近的10条日志

四、Dockerfile定制镜像

当官方的镜像不能满足我们的需求时,我们就需要定制镜像
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本时dockerfile。
Dockerfile是个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每条指令的内容,就是描述该层应当如何构建。

1、DockerFile常用的命令

1.FROM
功能为指定基础镜像,并且必须是第一条指令。 如果不以任何镜像为基础,那么写法为:FROM scratch。 同 时意味着接下来所写的指令将作为镜像的第一层开始 语法:

FROM <image>
FROM <image>:<tag>

2.RUN
RUN指令在镜像的构建过程中执行特定的命令,并生成一个中间镜像。
shell 格式:

RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

exec格式:

RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

注意:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层. 多少个RUN就构建了多 少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错。 RUN书写时的换行 符是\

如果想要具体了解Dockerfile的常用命令可以去看这篇文章:https://blog.csdn.net/m0_51913750/article/details/131563704?

2、DockerFile实操

案例1:创建一个镜像(基于tomcat),里面要有一个index.html页面,并写入hello,docker!
创建一个dockerfile的目录并创建一个Dockerfile的文件。
mkdir /dockerfile
注意:这个文件名必须为Dockerfile

[root@redhat dockerfile]# cat Dockerfile 
FROM tomcat:7
WORKDIR /usr/local/tomcat/webapps/
RUN mkdir ROOT/ && echo 'hello docker!' > ./ROOT/index.html
[root@redhat dockerfile]# docker build -t mytomcat:1.0 .   .表示当前文件

可以用docker images验证是否成功了。

虚悬镜像:没有名字,也没有标签,为< none>,这是因为新镜像跟原来镜像的名称和标签相同。文章来源地址https://www.toymoban.com/news/detail-812562.html

到了这里,关于【docker】之基础篇二的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S:K8S自动化运维容器化(Docker)集群程序

    目录 一、K8S概述 1、什么是K8S 2、为什么要用K8S 3、作用及功能 二、K8S的特性 1、弹性伸缩 2、自我修复 3、服务发现和复制均衡 5、自动发布和回滚 6、集中化配置管理和秘钥管理 7、存储编排 8、任务批量处理运行 三、K8S的集群架构 四、K8S的核心组件 1、Master组件 ①Kube-apis

    2024年02月12日
    浏览(70)
  • 小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

    一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望

    2024年02月14日
    浏览(39)
  • Linux(基础篇二)

    5.1 Linux中的进程和服务 计算机中,一个正在执行的程序或命令,被叫做“进程”(process) 启动之后一只存在、常驻内存的进程,一般被称作“服务”(service) 5.3 systemctl 基本语法:systemctl start | stop | restart | status 服务名 5.4 运行级别 CentOS 6 Linux系统有7种运行级别: 常用级别为

    2024年02月11日
    浏览(25)
  • 学无止境·运维高阶⑥Docker基础内容

    #启动 [root@node3 docker]# docker start Li #停止正在运行 [root@node3 docker]# docker stop Li #重启 [root@node3 docker]# docker restart Li 用-it创建容器后,不停止容器退出:Ctrl+Q+P 用-it创建容器后,退出并停止容器:Ctrl+D 或 exit

    2024年02月11日
    浏览(43)
  • Docker容器------镜像,容器基础命令

    目录  一,docker镜像  1,查看docker版本  2,获取镜像 2.1查看下载到本地的所有镜像   2.2 获取镜像信息 2.3 添加镜像标签(上传镜像到仓库)   2.4 镜像导出  2.5 镜像导入  2.6 ,删除镜像  2.7 上传镜像 ​编辑 二,docker 容器操作 1,查看容器 2,容器创建----docker create  

    2024年02月05日
    浏览(53)
  • Docker容器:docker基础

    目录 一、docker容器简介 1、什么是容器 2、容器的优点 3、什么是docker容器 4、docker的logo及设计宗旨 5、docker与虚拟机对比 6、docker容器2个重要技术 7、docker三大核心概念 二、docker的安装及管理 1、安装docker 2、配置docker加速器 3、docker镜像相关基础命令 ①搜索镜像 ②拉取镜像

    2024年02月02日
    浏览(51)
  • Docker容器:docker基础及安装

    (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 (2)是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 (3)Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。 2.1 docker虚拟

    2024年02月05日
    浏览(53)
  • 【Docker系列】容器基础、Docker镜像管理

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 2.1 Docker镜像查找 命令查找 docker官网查找 2.2 Docker镜像管理 拉取MySQL镜像 查看本地镜像 镜像加速(阿里云) Daocloud镜像站加速 镜像删除 2.3 容器

    2024年01月25日
    浏览(46)
  • 【Docker基础】Docker容器的基本使用

    2023年07月08日
    浏览(57)
  • Docker 容器基础操作

    容器(container)是Docker镜像的运行实例,类似于可执行文件与进程的关系,Docker是容器引擎,相当于系统平台。 容器的生命周期

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包