1. 查找正在运行的容器ID
首先,我们需要找到正在运行的容器ID(CONTAINER ID),通过以下命令列出所有正在运行的容器:
docker ps -a
(docker ps -a 用于在编辑Docker容器内的文件之前查看Docker镜像)
以上命令将列出所有正在运行的容器:
root@192:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
333f4fedf74d dogeek/dogeek:1.3.3 "worker-functions" 22 minutes ago Up 22 minutes 80/tcp worker-functions
762ef6b130e1 dogeek/dogeek:1.3.3 "executor" 22 minutes ago Up 22 minutes 80/tcp executor
92be4c187ac2 dogeek/dogeek:1.3.3 "worker-certificates" 22 minutes ago Up 22 minutes 80/tcp worker-certificates
29c9d0b143c0 dogeek/dogeek:1.3.3 "schedule" 22 minutes ago Up 22 minutes 80/tcp schedule
3546e895076c dogeek/dogeek:1.3.3 "worker-deletes" 22 minutes ago Up 22 minutes 80/tcp worker-deletes
50af13363a7d dogeek/dogeek:1.3.3 "worker-audits" 22 minutes ago Up 22 minutes 80/tcp worker-audits
7c3b6258ec70 dogeek/dogeek:1.3.3 "worker-database" 23 minutes ago Up 22 minutes 80/tcp worker-database
16f6f84316cc dogeek/dogeek:1.3.3 "worker-webhooks" 23 minutes ago Up 22 minutes 80/tcp worker-webhooks
复制 CONTAINER ID,因为我们将使用它进入Docker容器
现在我们需要使用以下命令登录到容器
docker exec -u 0 -it 333f4fedf74d /bin/bash
如果以上命令出错如下;
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
那么把/bin/bash改为/bin/sh, 如下命令:
docker exec -u 0 -it 333f4fedf74d /bin/sh
运行命令之后即可显示如下信息:
root@192:~# docker exec -u 0 -it 333f4fedf74d /bin/sh
/usr/src/code #
之后可以直接用vi编辑即可,如果您想使用vim, 可在Dockerfile之内自行添加安装信息如下:
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
RUN mkdir destination-dir-for-add
ADD sample.tar.gz /destination-dir-for-add
RUN ["apt-get", "update"]
RUN ["apt-get", "-y", "install", "vim"]
ENTRYPOINT ["java","-jar","/app.jar"]
通过端口22远程编辑
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
RUN mkdir destination-dir-for-add
ADD sample.tar.gz /destination-dir-for-add
RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "openssh-server"]
RUN echo 'root:lollol0' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN ["/etc/init.d/ssh", "start"]
EXPOSE 22
WORKDIR "/app"
CMD ["/usr/sbin/sshd", "-D"]
ENTRYPOINT ["java","-jar","/app.jar"]
构建Docker镜像
docker build -t myimagewithopenssh .
在22端口上运行Docker镜像
docker run --rm -p 2222:22 -d --name=myimagewithopenssh myimagewithopenssh
启动容器后,您可以远程编辑文件,此为用于编辑Docker容器中存在的文件vim命令
vim scp://root@localhost:2222//app/application.yaml
注:不建议在正在运行的 docker 容器中编辑文件,因为它违反了容器化的基本原则。
那为什么还这么做?
在开发环境中可能会用得到!
好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!
版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/138153.html