我正在使用通过此docker image创建的dockerfile(不是我的)。
ROS动力学,ROS2和一些重要的软件包已经安装在此图像上。
当我使用docker run -it <image-hash-code>
运行docker镜像时,ROS动力学运行良好,并且python3等软件包可以找到。
因此,所有Docker映像都是我自己项目的一个很好的起点。
但是,我想更改存储在docker映像中的python脚本。 python脚本正在使用已安装的软件包,并且正在与ROS动力学以及ROS2进行交互。
我不想在Ubuntu系统上安装所有这些程序和程序包,这些程序和程序包已经安装在docker映像中,以便测试我自己的python脚本。
是否可以挂载docker映像,以便测试python脚本? 当然,我可以使用vim编辑python脚本,但是我在考虑更多IntelliJ。
因此,IDE(例如IntelliJ)如何访问和运行存储在docker映像中的python脚本,其结果与我直接在运行的容器上执行此脚本的结果相同。
乔哈尔勋爵(Lord Johar)的方法,正在安装docker,使用IDE编辑脚本,保存图像,然后运行图像,这种方法正在起作用,但这不是我想要实现的。
我的目标是将docker容器用作开发环境,IDE可以在该开发环境上访问并使用已安装的程序和软件包。
换句话说:我想在主机系统上使用IDE,以便以与将IDE安装在docker映像上相同的方式测试我的python脚本。
答案 0 :(得分:0)
您可以使用docker commit
docker commit <your python container>
。docker images
以查看图像。docker tag myphthon:v1 <image ID>
答案 1 :(得分:0)
但是,我想更改存储在docker映像中的python脚本。 python脚本正在使用已安装的软件包,并且正在与ROS动力学以及ROS2进行交互。
第二种方式
创建名称为Dockerfile
的文件:
FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD python ./index.py
还要注意的是RUN指令,该指令正在调用PyPi(pip)并指向requirements.txt文件。该文件包含应用程序需要运行的依赖项列表。
构建图像。
docker build --tag my-app .
注意:命令末尾是一个点,太重要了。另一件事是,您必须位于Dockerfile中的/ path / to / your / app
现在您可以运行容器
docker run --name python-app -p 5000:5000 my-app
答案 2 :(得分:0)
您正在寻找的是一种可以与本地或远程 docker 恶魔进行通信的工具。
我知道eclipse可以做到这一点。为此使用的工具称为 type Item struct {
Config struct {
BaseAuthUrlKey string `json:"BASE_AUTH_URL_KEY"`
BaseUrl string `json:"BASE_URL"`
ConnTimeoutSeconds string `json:"CONN_TIME_OUT_SECONDS"`
ReadTimeoutSeconds string `json:"READ_TIME_OUT_SECONDS"`
} `json:"config"`
ID string `json:"id"`
}
。它可以在您的网络中运行 docker 恶魔的机器上探索 docker 镜像和容器。它可以启动和停止容器,将容器提交到镜像并创建镜像。
您需要(据我了解)是能够提交容器,因为您要求更改容器内的脚本。如果你喜欢在那些 docker 容器上坚持你的工作,提交是必不可少的。
由于我不熟悉 IntelliJ,我建议查看 eclipse's docker tooling wiki 以了解它是否是您要查找的内容。然后在你有了一个想法之后,在你最喜欢的 IDE 中寻找类比,比如 IntelliJ。
另一个支持 docker explore 的 IDE 是 clion