简述
一个很老的jsp项目,结构不了解,需要在多个环境配置,因此选择了docker来在不同环境移植。主要用到java。
相关docker备忘
用到的docker相关命令:(省略最前面的docker命令)
作用 | 命令 | 备注 |
---|---|---|
启动 | run -idt image /bin/bash | -d是后台 |
连接 | exec -it [name] /bin/bash | 这个exit不会退出 |
命名 | run --name [name] | |
端口映射 | run -p 8080:8080 | p指定P随机 |
复制 | cp [路径] [容器名]:[路径] | 反过来也可以 |
显示 | ps | -a是全部 |
关闭 | close | |
删除 | rm | 不能删除镜像 |
删镜像 | rmi |
启动就用:
docker run -idt -p 8080:8080 --name 名字 镜像名:版本 /bin/bash
连接就用:
docker exec -it [名字或id] /bin/bash
启动之后建议开两个终端,一个在容器里面一个在外面,会很方便
关于docker内配置的问题:
环境变量
首先是环境,每次启动都会有PATH和JAVA_HOME缺失的问题,解决方法是在/root下有个隐藏文件".bashrc","ls -a"命令可以看到,这个文件在linux启动的时候会自动运行,在这个文件的后面加上两行:
JAVA_HOME=[自己的JAVA位置]
PATH= $PATH:[自己的JAVA位置]/bin
(环境检查方法:echo $PATH和echo $JAVA_HOME)
(/root其实就是~,是root账号的主文件夹,每个用户都有自己的主文件夹,在/home下)
文件编辑、移植
关于文件的处理,由于下载的ubuntu镜像是精简过的,容器内没有vi。编辑的时候如果是简单的只有一行的东西可以直接cat查看,然后
echo “内容”>[文件名]
这个操作会覆盖源文件,如果想要在原文件后面追加的话
echo “内容” >>[文件名]
如果比较大要用文本编辑器的话可以尝试在外面使用docker cp复制到容器外处理。
特殊情况可能要用lsof命令看端口占用情况,这个命令容器里面没有,可以把外面系统/usr/bin里面的相应文件复制进来(名字就是lsof)
对于其他命令的可以使用whereis [命令]看这命令的来源(一般都在/usr/bin下)
(PS:vi好像复制进去也用不了,nano没试)