文章目录
百度云
百度云已经支持加速了
安装docker
docker客户端
win还需要 => WSL2
限制WSL的内存
- 创建一个文本,name固定为
.wslconfig
- 路径:
C:\Users\Administrator
- 内存最大为1G => win上运行Linux还不完善,内存有点问题,容易爆内存
[wsl2]
memory=1GB
swap=0
localhostForwarding=true
配置阿里云镜像加速
登陆阿里云
创建镜像 => 本地就可以
找到镜像加速地址
配置docker
docker使用tomcat为例
- 使用CMD就可以正常使用docker,因为已经在Windows上装了wsl的Linux子系统
- 不同的cmd工具命令可能不一样的 => cmd肯定没问题
查看docker命令
docker --help
下载tomcat
docker pull tomcat
查看下载的镜像
docker images
docker运行tomcat
docker run tomcat
- 已经启动了
后台运行tomcat运行
docker run -d tomcat
detach
:分离
自定义name运行
docker run -d --name tomcat-01 tomcat
映射端口:8888运行
docker run -d --name tomcat-01 -p 8888:8080 tomcat
- 现在还不能在浏览器用tomcat的
查看容器(运行的镜像)
docker ps
container id
:容器id(随机给的)image
:镜像名command
:命令(我还不太清楚)created
:创建时间status
:状态=>运行状态(up)和停止状态(exit)ports
:端口映射(我们使用8888端口访问tomcat)names
:自定义名字,不自定义也会随机生成
docker ps -a
- 查看所有容器=>运行和停止的(ps只能查看正在运行的容器)
删除docker容器/镜像
docker rm id/name
- 正常删除:不能删除正在运行的容器,停止的可以删除
docker rm -f id/name
-
强制删除容器
:运行中的也能删除 -
force
:强制
进入/退出运行的容器
docker exec -i -t tomcat-01 /bin/bash
docker exec -it tomcat-01 /bin/bash
i
:Linux中是开启输入模式,这里也差不多t
:开启一个模拟的终端(如下面例图)
Ctrl+D
退出并停止容器(就是exit,快捷建就是输入exit回车的命令)Ctrl+P+Q
退出但不停止容器:
容器复制文件
-
进入容器 => -r:所有文件都复制,包括子文件夹
-
cp -r webapps.dist/* webapps
启动/停止容器
docker start tomcat-01
docker stop tomcat-01
挂载tomcat文件到D盘
创建目录结构
- 进容器目录看看
- 看看webapps下面
- 这下面是没有东西的.所以我们8888也是打不开tomcat的
- 而webapps.dist中有数据
- 最简单的操作就是将这里面的复制到webapps中就可以正常运行tomcat了
挂载
- 创建文件夹目录
bin
:目录主要是用来存放tomcat的命令conf
:目录主要是用来存放tomcat的一些配置文件lib
:目录主要用来存放tomcat运行需要加载的jar包logs
:目录用来存放tomcat在运行过程中产生的日志文件temp
:目录用户存放tomcat在运行过程中产生的临时文件webapps
:目录用来存放应用程序work
:目录用来存放tomcat在运行时的编译后文件
- 挂载:主机的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盘没有会自动创建的
-
查看结果
tomcat中的目录
主机的目录
注意:
- 不是所有目录都能挂载的 => 挂载目录下面不能有子文件夹,差不多根目录这样才可以
是不是想启动浏览器看看了 => 对不起还不行
启动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
-
浏览器查看 => 古德
- 移除容器(先不移除) => 这里就启动完了
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的名字/新的名字:版本 => 必须要这样起,不能直接写新的名字加版本
- 这样就可以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
- 后面就一样了
docker push 1846555387/tomcat:1.0 => 直接push新的全面
- push可能超级无敌慢 => 需要配置一下