docker入门(镜像和容器的使用)

一、什么是docker 镜像

docker 镜像介绍

镜像与容器的关系

二、列出docker 镜像

三、拉取镜像

从docker hub拉取

ustc镜像源(推荐)

四、查找镜像

五、构建镜像

安装 tomcat

1、先安装centos

2、创建交互式容器


一、什么是docker 镜像

==============

docker 镜像介绍


操作系统分为内核和用户空间,对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。

Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

docker 镜像默认存储在:/var/lib/docker/目录下

镜像与容器的关系


镜像(image)和容器(container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立宿主的系统下操作一样。这种特性使容器封装的应用比直接在宿主运行更加安全。

前面讲过镜像使用的是分层储存,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,可以称这个味容器运行时读写而准备的存储层为容器存储层。

容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

按照Docker最佳实践的要求,容器不应该向其存储层写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用数据卷(volume)、或者绑定宿主目录,在这些位置的读写会跳过存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。


二、列出docker 镜像

=============

先启动docker

systemctl restart docker.service

列出docker 镜像

docker images

三、拉取镜像

======

从docker hub拉取


从Docker Hub中拉取镜像时,常会出现以下问题:

0ad1d6225e75a44f6ff3638032d6509aff6.png

解决方案:

docker 从 docker hub 拉取镜像,因为是从国外获取,速度较慢。可以通过配置国内镜像源的方式,从国内获取镜像,提高拉取速度。

ustc镜像源(推荐)


配置

cd /etc/docker

https://note.youdao.com/yws/public/resource/c378f17da771056bd3b5d4de78656ee3/xmlnote/717AD8183D7A4F568BA29C944CEA3C42/63262

vi daemon.json

复制保存

{

“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]

}

重启docker服务

systemctl restart docker.service

拉取centos镜像

docker pull centos

拉取成功后,查看

docker images

第三方镜像如何使用说明

https://hub.docker.com/search?type=image

文档里有详细说明如何使用

===========================================================================================================================================================================================================

四、查找镜像

======

docker search tomcat

NAME:镜像名

DESCRIPTION:镜像描述

STARS:用户评价,数值越高越受欢迎

OFFICIAL:是否官方

AUTOMATED:自动构建,表示该镜像由docker hub自动构建流程创建的;

五、构建镜像

=======

安装 tomcat


1、先安装centos

列出docker 镜像

docker images

已经有了,就不需要再安装,如果没有,则安装centos

docker pull centos

2、创建交互式容器

docker run -i -t --name=mycentos centos

注:

这两个参数(-i, -t)是啥意思

| Options | Mean |

| — | — |

| -i | 以交互模式运行容器,通常与 -t 同时使用; |

| -t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用; |

进入容器里面

安装JDK

yum install java-1.8.0-openjdk* -y

安装成功

0

设置环境变量

centos8 通过yum安装Java后,查看Java安装路径

ls -lrt /usr/bin/java

ls -lrt /etc/alternatives/java

0

0

vi /etc/profile

0

在文件最下方粘贴以下内容后保存

注意:JAVA_HOME后面,是你实际的安装路径!

export JAVA_HOME=/usr/local/jdk-xxxx

export CLASSPATH=.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAHOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

0

生效命令:source /etc/profile

测试命令:java -version

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
无助。**

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-oQSw4rvu-1715291691532)]

[外链图片转存中…(img-X5TAY730-1715291691532)]

[外链图片转存中…(img-fg0UIG1O-1715291691533)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值