【发布时间】:2017-09-06 20:14:51
【问题描述】:
目前我正在使用 vim 在 Docker 容器内编辑文件,但我希望有更好的方法。
根据我的研究,在本地机器的文本编辑器(例如 Sublime Text)上编辑 Docker 容器内文件的最佳方法似乎是使用Sublime SFTP。
这需要编辑sftp-config.json 文件,它看起来像这样:
{
// The tab key will cycle through the settings when first created
// Visit http://wbond.net/sublime_packages/sftp/settings for help
// sftp, ftp or ftps
"type": "sftp",
"sync_down_on_open": true,
"sync_same_age": true,
"host": "192.168.129.8",
"user": "root",
"password": "666",
//"port": "22",
"remote_path": "/",
//"file_permissions": "664",
//"dir_permissions": "775",
//"extra_list_connections": 0,
"connect_timeout": 30,
//"keepalive": 120,
//"ftp_passive_mode": true,
//"ftp_obey_passive_host": false,
//"ssh_key_file": "~/.ssh/id_rsa",
//"sftp_flags": ["-F", "/path/to/ssh_config"],
//"preserve_modification_times": false,
//"remote_time_offset_in_hours": 0,
//"remote_encoding": "utf-8",
//"remote_locale": "C",
//"allow_config_upload": false,
}
但是- 不完全一样- 因为这种安排不起作用。
主要障碍似乎是不建议(不可能?)ssh 进入 docker 容器,至少不使用 macOS。
This is a similar unanswered question from one year ago。
问题:
我们如何在本地机器上使用 Sublime Text 编辑 Docker 容器内的文件?如果 SFTP 是一个可行的选择,我们如何配置 sftp-config.json 并启动一个可以使这成为可能的 Docker 容器?
【问题讨论】:
-
是的-我已经看到了-但这是否意味着不可能?
-
当然不是不可能。 Docker 并不是什么神奇的东西。如果你想在你的 docker 容器中运行一个 ssh 服务器,你当然可以这样做,但代价是一些复杂性。但更重要的是,如果您发现必须定期编辑容器内的文件,我会认为您做错了。 Docker 镜像应该是构建过程的产物;您使用自己喜欢的工具在主机上编辑文件,然后构建新映像并启动它。如果您需要进行更改,请构建一个新映像。
-
我想做的是在docker容器中创建一个hadoop集群-我的开发环境是mac,所以我需要迭代地修改配置文件参数的设置,我更喜欢在 Sublime Text 中执行此操作,它具有我熟悉的所有文本完成和语法突出显示 - 而不是 vim 或我必须在容器内运行的东西
标签: docker sublimetext3 sftp