Docker -> 上手 tomcat为例 => 启动到提交

百度云

百度云已经支持加速了

image-20210114191105555

安装docker

docker客户端

image-20210114201504576

win还需要 => WSL2

image-20210114201616256

限制WSL的内存

  • 创建一个文本,name固定为.wslconfig
  • 路径:C:\Users\Administrator
  • 内存最大为1G => win上运行Linux还不完善,内存有点问题,容易爆内存

image-20210114202937994

[wsl2]
memory=1GB
swap=0
localhostForwarding=true

image-20210114202958186

配置阿里云镜像加速

登陆阿里云

image-20210114203609633

创建镜像 => 本地就可以

找到镜像加速地址

image-20210114203928575

配置docker

在这里插入图片描述

docker使用tomcat为例

  • 使用CMD就可以正常使用docker,因为已经在Windows上装了wsl的Linux子系统
  • 不同的cmd工具命令可能不一样的 => cmd肯定没问题

查看docker命令

docker --help

image-20210114205204096

下载tomcat

docker pull tomcat

image-20210114205424025

查看下载的镜像

docker images

image-20210114205357674

docker运行tomcat

docker run tomcat

  • 已经启动了

image-20210114205800898

后台运行tomcat运行

  • docker run -d tomcat
  • detach:分离

image-20210114210627683

自定义name运行

  • docker run -d --name tomcat-01 tomcat

image-20210114211408006

映射端口:8888运行

  • docker run -d --name tomcat-01 -p 8888:8080 tomcat
  • 现在还不能在浏览器用tomcat的

image-20210114211716865

查看容器(运行的镜像)

docker ps

  • container id:容器id(随机给的)
  • image:镜像名
  • command:命令(我还不太清楚)
  • created:创建时间
  • status:状态=>运行状态(up)和停止状态(exit)
  • ports:端口映射(我们使用8888端口访问tomcat)
  • names:自定义名字,不自定义也会随机生成

image-20210114212420897

docker ps -a

  • 查看所有容器=>运行和停止的(ps只能查看正在运行的容器)

image-20210114214205137

删除docker容器/镜像

docker rm id/name

  • 正常删除:不能删除正在运行的容器,停止的可以删除

image-20210114214403335

docker rm -f id/name

  • 强制删除容器:运行中的也能删除

  • force:强制

image-20210114214630704

进入/退出运行的容器

  • docker exec -i -t tomcat-01 /bin/bash
  • docker exec -it tomcat-01 /bin/bash
  • i:Linux中是开启输入模式,这里也差不多
  • t:开启一个模拟的终端(如下面例图)

image-20210115084713278

image-20210115084809167

  • Ctrl+D 退出并停止容器(就是exit,快捷建就是输入exit回车的命令)
  • Ctrl+P+Q退出但不停止容器:

容器复制文件

  • 进入容器 => -r:所有文件都复制,包括子文件夹

  • cp -r webapps.dist/* webapps

image-20210118084946253

启动/停止容器

docker start tomcat-01

docker stop tomcat-01

挂载tomcat文件到D盘

创建目录结构

  • 进容器目录看看

image-20210116211305782

  • 看看webapps下面
  • 这下面是没有东西的.所以我们8888也是打不开tomcat的

image-20210116211845059

  • 而webapps.dist中有数据
  • 最简单的操作就是将这里面的复制到webapps中就可以正常运行tomcat了

image-20210116211758681

挂载

  • 创建文件夹目录
    • bin :目录主要是用来存放tomcat的命令
    • conf :目录主要是用来存放tomcat的一些配置文件
    • lib :目录主要用来存放tomcat运行需要加载的jar包
    • logs :目录用来存放tomcat在运行过程中产生的日志文件
    • temp :目录用户存放tomcat在运行过程中产生的临时文件
    • webapps :目录用来存放应用程序
    • work :目录用来存放tomcat在运行时的编译后文件

image-20210116212335185

  • 挂载:主机的logs和tomcat的logs

挂载代码

  • docker run -d -it -p 8888:8080 --name tomcat-01 => 运行
  • docker rm -f tomcat-01 => 用来强制删除容器
  • docker exec -it tomcat-01 /bin/bash => 进入容器
  • 挂载好像只能挂载webapps和logs => 后面的几个conf那些不可以
  • 代码有些长,而且不能换行的 => 可以看看截图
docker run -d -it -p 8081:8080 --name tomcat-01 -v /D/Rod/Docker/tomcat/tomcat-01/webapps:/usr/local/tomcat/webapps  -v /D/Rod/Docker/tomcat/tomcat-01/logs:/usr/local/tomcat/logs  tomcat 
  • 你只管挂载 => d盘没有会自动创建的

image-20210117111905644

  • 查看结果

    tomcat中的目录

image-20210117112049540

主机的目录

注意:

  • 不是所有目录都能挂载的 => 挂载目录下面不能有子文件夹,差不多根目录这样才可以

是不是想启动浏览器看看了 => 对不起还不行

启动tomcat

  • 启动容器挂载 => 这里给了tomcat-01和02
docker run -d -it -p 8081:8080 --name tomcat-01  -v /D/Rod/Docker/tomcat/tomcat-01/webapps:/usr/local/tomcat/webapps -v /D/Rod/Docker/tomcat/tomcat-01/logs:/usr/local/tomcat/logs --restart=always tomcat 


docker run -d -it -p 8082:8080 --name tomcat-02  -v /D/Rod/Docker/tomcat/tomcat-02/webapps:/usr/local/tomcat/webapps -v /D/Rod/Docker/tomcat/tomcat-02/logs:/usr/local/tomcat/logs --restart=always tomcat 
  • 进入容器,将webapps.dist复制到webapps中

    docker exec -it tomcat-01 /bin/bash
    
    • 有一些cmd不一定进得去:在前面加上提示代码 => 我的是winpty,后面用
    winpty docker exec -it tomcat-01 bash
    
    • 拷贝
    cp -r webapps.dist/* webapps
    
  • 浏览器查看 => 古德

image-20210119201600034

  • 移除容器(先不移除) => 这里就启动完了
docker rm -f tomcat-01

push到docker hub

第一种:tag

  • 镜像直接提交到docker hub
//命令是这样,前提 => 要把镜像的名字改一下
docker push 1846555387/tomcat:1.0
  • 改镜像名字
    • 新的名字要想提交要有格式的,随便是不行的
docker tag 现在的名字 新的名字
dokcer tag tomcat 1846555387/tomcat:1.0
  • 新的名字的格式

hub的名字/新的名字:版本 => 必须要这样起,不能直接写新的名字加版本

image-20210120203128710

  • 这样就可以push了
docker push 1846555387/tomcat:1.0 => 直接push新的全面

第二种:commit

  • 启动的容器提交到hub
//结果都是一个
dokcer push tomcat 1846555387/tomcat:1.0
  • 使用的是commit => 不是tag
//docker commit 容器名字 新的镜像名字:版本
docker commit tomcat-01 1846555387/tomcat:1.0

image-20210120203808900

  • 后面就一样了

image-20210120203929923

docker push 1846555387/tomcat:1.0 => 直接push新的全面
  • push可能超级无敌慢 => 需要配置一下
    image-20210121084446272
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值