- 安装docker、sublime text、package control、remote - ssh和sftp插件;2. 配置remote - ssh连接docker容器的ssh信息并确保容器内运行ssh服务;3. 使用sftp插件同步本地与容器内文件;4. 通过terminalview在sublime中执行容器内命令;5. 在dockerfile中安装必要开发环境并配置用户权限;6. 解决权限问题需设置正确目录归属和ssh密钥权限;7. 优化体验可采用docker compose、定期更新插件及自定义sublime配置,最终实现sublime text无缝连接docker容器完成编辑、同步与运行的完整开发流程。

直接在Sublime Text中实现容器内开发,核心在于利用插件建立Sublime与Docker容器之间的桥梁,从而在Sublime界面中编辑代码,并直接在容器内运行、调试。
Sublime Text连接Docker环境,实现容器内开发的完整教程:
解决方案
-
安装必要的软件和插件:
- Docker: 确保你的系统上已经安装了Docker,并且Docker守护进程正在运行。这是基础,没有Docker,一切无从谈起。
- Sublime Text: 废话不多说,你的代码编辑器。
- Sublime Package Control: 如果你还没安装,这是Sublime的包管理器,安装插件必备。
-
Remote - SSH: 这个插件是关键,它允许Sublime通过SSH连接到远程服务器(在这里,就是你的Docker容器)。在Sublime中,按下
Ctrl+Shift+P
(Windows/Linux) 或Cmd+Shift+P
(macOS),输入Install Package Control
并回车,等待安装完成。然后再次按下Ctrl+Shift+P
或Cmd+Shift+P
,输入Install Package
,回车,搜索Remote - SSH
并安装。 - SFTP: 另一个非常有用的插件,用于同步本地文件和Docker容器内的文件。安装方式和Remote - SSH类似。
-
配置Remote - SSH:
- 安装完Remote - SSH后,在Sublime中,按下
Ctrl+Shift+P
或Cmd+Shift+P
,输入Remote SSH: Edit Configuration File
,选择你的配置文件(通常是~/.ssh/config
)。 - 在配置文件中添加你的Docker容器的SSH连接信息。这需要你的Docker容器已经配置了SSH服务。一个简单的配置示例如下:
Host my-docker-container HostName <你的Docker容器的IP地址或主机名> User <你的Docker容器的用户名> Port <你的Docker容器的SSH端口,通常是22> IdentityFile <你的SSH私钥文件路径,如果需要的话>- 保存配置文件。
- 安装完Remote - SSH后,在Sublime中,按下
-
连接到Docker容器:
- 在Sublime中,按下
Ctrl+Shift+P
或Cmd+Shift+P
,输入Remote SSH: Connect to Host
,选择你刚刚配置的my-docker-container
。 - Sublime会尝试通过SSH连接到你的Docker容器。如果一切顺利,你会在Sublime的底部状态栏看到连接成功的提示。
- 在Sublime中,按下
-
配置SFTP (可选,但强烈推荐):
- 在Sublime中,打开你的项目文件夹。
- 右键点击项目文件夹,选择
SFTP/FTP -> Map to Remote...
。 - 会弹出一个配置文件,你需要填写Docker容器的连接信息和远程路径。一个简单的配置示例如下:
{ "type": "sftp", "host": "<你的Docker容器的IP地址或主机名>", "user": "<你的Docker容器的用户名>", "password": "<你的Docker容器的密码,如果需要的话>", "port": "22", "remote_path": "<你的Docker容器中的项目路径>", "local_path": "<你的本地项目路径>", "ignore_regexes": [ "\\.git", "\\.svn", "\\.hg", "\\.DS_Store" ], "sync_down_on_open": true, "sync_up_on_save": true, "sync_skip_deletes": false, "sync_delete_local": false, "sync_delete_remote": false }- 保存配置文件(通常命名为
sftp-config.json
)。 - 现在,当你编辑并保存本地文件时,SFTP会自动将更改同步到Docker容器中。
-
在Docker容器中运行代码:
- 连接到Docker容器后,你可以使用Sublime的Terminal插件(例如
TerminalView
)直接在容器内执行命令。 - 安装TerminalView:按下
Ctrl+Shift+P
或Cmd+Shift+P
,输入Install Package
,回车,搜索TerminalView
并安装。 - 打开TerminalView:按下
Ctrl+Shift+P
或Cmd+Shift+P
,输入TerminalView: Show
。 - 现在你可以在TerminalView中执行命令,例如运行你的代码:
python your_script.py
。
- 连接到Docker容器后,你可以使用Sublime的Terminal插件(例如
如何确保Sublime连接的Docker容器拥有必要的开发环境?
确保你的Docker镜像已经包含了所有必要的开发工具和依赖项。这通常需要在Dockerfile中进行配置。例如,如果你的项目需要Python和一些Python库,你的Dockerfile可能看起来像这样:
FROM ubuntu:latest RUN apt-get update && apt-get install -y python3 python3-pip openssh-server RUN pip3 install <你的Python库> # 配置SSH RUN mkdir /var/run/sshd RUN echo 'root:your_password' | chpasswd RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
然后,构建并运行你的Docker容器。
如何解决Sublime连接Docker容器时遇到的权限问题?
权限问题是常见的问题。确保你的Docker容器中的用户对项目目录具有读写权限。你可以通过在Dockerfile中添加
RUN chown -R your_user:your_group /your/project/path来解决这个问题。 另外,确保你的SSH密钥具有正确的权限(通常是600)。
如何优化Sublime连接Docker容器的开发体验?
- 使用Docker Compose: Docker Compose可以帮助你管理多个Docker容器,并定义它们之间的依赖关系。这对于复杂的项目非常有用。
- 使用VS Code Remote - Containers: 虽然我们讨论的是Sublime,但不得不承认,VS Code的Remote - Containers插件在这方面做得更好。如果你的项目非常复杂,可以考虑使用VS Code。
- 定期更新你的插件: 保持你的Sublime插件更新到最新版本,可以获得更好的性能和安全性。
- 自定义Sublime的配置: Sublime具有很强的可定制性。你可以根据自己的需求自定义Sublime的配置,例如快捷键、主题等。










