
本文共 2602 字,大约阅读时间需要 8 分钟。
目录
一、什么是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中拉取镜像时,常会出现以下问题:
解决方案:
docker 从 docker hub 拉取镜像,因为是从国外获取,速度较慢。可以通过配置国内镜像源的方式,从国内获取镜像,提高拉取速度。
ustc镜像源(推荐)
配置
cd /etc/docker
vi daemon.json复制保存{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}
重启docker服务
systemctl restart docker.service
拉取centos镜像
docker pull centos
拉取成功后,查看
docker images
第三方镜像如何使用说明
文档里有详细说明如何使用
四、查找镜像
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
安装成功
设置环境变量
centos8 通过yum安装Java后,查看Java安装路径
ls -lrt /usr/bin/java ls -lrt /etc/alternatives/java
vi /etc/profile
在文件最下方粘贴以下内容后保存
注意:JAVA_HOME后面,是你实际的安装路径!
export JAVA_HOME=/usr/local/jdk-xxxxexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin
生效命令:source /etc/profile 测试命令:java -version
把tomcat复制到服务器上
可以通过SCP上传到服务器上
返回docker服务器,复制tomcat到容器里
docker cp apache-tomcat-8.5.47.zip mycentos:/root/
进入容器
docker attach mycentos
退出容器:
exit
查找容器
docker ps -a
报错:
You cannot attach to a stopped container, start it first
解决方案:启动容器
查看容器里的tomcat
解压zip
先安装unzip
移动到
mv apache-tomcat-8.5.47 /usr/local/tomcat8
容器提交为新的镜像
先退出容器
exit
容器提交为新的镜像
docker commit mycentos mytomcat8
使用新的镜像启动tomcat容器
-p是端口映射
docker run -d -i -t --name=tomcat -p 8888:8080 mytomcat8 /bin/bash
启动tomcat容器
启动tomcat
注意:访问的端口是docker映射的端口,而不是tomcat本身的端口
到此结束,over!
发表评论
最新留言
关于作者
