docker镜像遇到的问题

本文详细列举了在使用Dockerfile构建镜像和操作Docker容器时遇到的问题,包括:Dockerfile命令错误、sed命令替换问题、jar包路径设置、Tomcat环境变量添加、容器内SSH服务缺失以及权限问题。针对这些问题,提供了相应的解决方案和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dockerfile命令错误

ADD :stat /var/lib/docker/tmp/docker-builder910273795/shBigScreen.zip: no such file or directory

原因:文件名称有个空格没看见

使用sed替换字符串,报错

sed: -e expression #2, char 27: unterminated `s' command
/web/app/rest/start.sh: line 18: ./web/app/rest/tomcat/bin/startup.sh: No such file or directory
原因:忘记加第二个匹配忘记加/了

使用sed替换字符串,不能识别分隔符

sed: -e expression #3, char 23: unknown option to `s'
https://blog.youkuaiyun.com/qq1124794084/article/details/76419464  因为连接中含有分隔符,把/换成#

sed: can't read s#dbUrl#jdbc:mysql://116.236.93.58:31015/lhs_restapi?useUnicode=true&characterEncoding=utf8#: No such file or directory

jar包路径问题

https://blog.youkuaiyun.com/zhuifengshaonian201/article/details/80353130

jar -cvfM0 xxxx.jar path 打包时,会把path路径全打包,如果只是表示某个目录下的文件,需要加上-C,就是cd 到那个目录的意思。比如

jar -cvfMo t1.jar  /home/jintao 表示 把home打包

jar -cvfMo t1.jar  -C /home/jintao  表示把jintao下的目录文件打包。

Tomcat添加环境变量

Using JRE_HOME:        /docker-java-home
Using CLASSPATH:       /web/app/rest/tomcat/bin/bootstrap.jar:/web/app/rest/tomcat/bin/tomcat-juli.jar
Unrecognized option: -easyreport.db.membership.password=fQxxIjJ%XR1tr6
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

原因:没有加-D,在使用tomcat中的sevent.sh添加环境变量时,一定要添加'-D'代表参数,不然无法识别

 

iptables v1.6.0: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
https://blog.youkuaiyun.com/styshoo/article/details/78279762

https://blog.youkuaiyun.com/Magic_Ninja/article/details/88432140

 

ssh: Could not resolve hostname start: Temporary failure in name resolution
 

 scp spring-aop-4.3.1.RELEASE.jar root@172.17.0.2:/web/app/rest/tomcat/webapps/easyreport/WEB-INF/lib/
ssh: connect to host 172.17.0.2 port 22: Connection refused
lost connection
容器没有安装openssh server

sudo apt-get install open-sshd

sudo /etc/init.d/sshd start

 

docker 容器默认的root好像没有传输数据的权限

scp 系统用户名密码.xlsx root@172.17.0.2:/home
root@172.17.0.2's password: 
Permission denied, please try again.
root@172.17.0.2's password: 
Permission denied, please try again.
root@172.17.0.2's password: 
root@172.17.0.2: Permission denied (publickey,password).
lost connection
原因:其实大多数的root用户都不允许ssh,但是可以通过在/etc/ssh/ssh_config中配置ssh的用户权限,比如增添root用户的ssh权限PermitRootLogin yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值