DOCKER镜像

从DOCKER到KUBERNETES(2)DOCKER镜像

1.什么是镜像

  • 镜像是一个模板

  • 镜像采用分层的文件系统

  • 镜像是容器运行的基石

  • 可以从镜像仓库中进行拉取(公有,私有 harbor)

2.管理镜像

#官方仓库搜索镜像
docker search imageName
​
#拉取镜像,Tag为镜像的版本号
docker pull imageName:Tag
​
#上传镜像到仓库
docker push imageName:Tag
​
#列出本地全部镜像
docker images
​
#支持通配符,根据通配符列出相关镜像 
docker images imageName* #imageName镜像名 例如 docker images mysql* 列出所有名称以mysql开头的镜像
​
​
#列出镜像的详细信息
docker inspect imageName:Tag 或 imageId
​
#删除镜像
docker rmi imageName:Tag 或 imageId #如果镜像有关联的容器在运行,不能删除
docker rmi -f imageName:Tag 或 imageId #强制删除镜像
,如果有多个镜像,采用空格进行分隔
​
#由镜像创建容器
docker run --name containerName -p hostPort:containerPort -d imageName:Tag
#--name : 运行容器的名字
#hostPort: 宿主机端口
#containerPort: 容器端口
#-d 后台运行该容器   
​
#查看容器运行状态      
docker ps #查看运行中的容器状态  
docker ps -a #查看全部容器状态(包括已经死亡的容器)

3.构建镜像

(1)容器转镜像

#案例: 使用docker部署一个tomcat容器
​
#第一步、运行容器
docker run --name tomcat -p 8080:8080 -d tomcat:8
​
#第二步、进入容器
docker exec -it tomcat /bin/bash #-it 给容器提供一伪终端
​
#第三步、修改容器内容
cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/
mkdir -p /usr/local/tomcat/webapps/mydemo/
cd /usr/local/tomcat/webapps/mydemo/
echo "<h1>This is MyDemo</h1>" > index.html
exit 退出容器的伪终端
​
#第四步、测试新增的index.html能否访问
curl http://hostIp:8080/mydemo/index.html
​
#第五步、将容器转为镜像
docker commit tomcat mydemo:0.1 #从tomcat容器导出mydemo镜像
​
#第六步、查看导出的镜像
docker images
​
#第七步、登录docker hub,将容器推送到仓库
docker login #登录
docker tag mydemo:0.1 dockerHubId/mydemo:0.1 #镜像重命名
docker push dockerHubId/mydemo:0.1 #镜像上传到仓库

(2)文件生成镜像

#案例:构建一个含有Mydemo项目的
​
#第一步、创建mydemo目录
mkdir -p /root/dockerApp/mydemo/
cd /root/dockerApp/mydemo/
​
#第二步、编辑dockerfile文件
cat mydemoFile
#基于tomcat8镜像
FROM tomcat:8
#在镜像内部修改内容 RUN 表示在镜像内部运行的命令
RUN cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/
RUN mkdir -p /usr/local/tomcat/webapps/mydemo/
RUN echo "<h1>This is MyDemo</h1>" > /usr/local/tomcat/webapps/mydemo/index.html
​
#第三步、使用mydemoFile文件构架镜像
docker build -f mydemoFile -t dockerHubId/mydemo:0.2 . #构建目标镜像mydemo:0.2,注意最后有个点符号
​
#第四步、查看本地镜像
docker images
​
#第五步、镜像上传到仓库
docker push dockerHubId/mydemo:0.2

(3)常用的构建镜像关键词

#基于目标镜像
FROM imageName:Tag
​
#镜像维护者信息
MAINTAINER authName authorEmail #维护者姓名 邮箱
​
#将文件复制到镜像内的指定路径
COPY file imagePath
​
#设置镜像的环境变量
ENV envName envValue  #envName:环境变量名 envValue: 环境变量值
​
#镜像暴露的端口号
EXPOSE portNumber
​
##启动容器内目标服务
CMD ["command1","command2",...]  #例如 CMD ["catalina.sh","run"] 启动tomcat服务
  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值