利用VSCode集成并连接远程服务器Docker
为什么要使用VSCode管理docker
官网地址:https://code.visualstudio.com/docs/containers/overview
The Docker extension makes it easy to build, manage, and deploy containerized applications from Visual Studio Code.
Docker扩展使得从Visual Studio Code构建、管理和部署容器化应用变得很容易。
对于桌面用户来说,在Windows上安装并使用docker是再好不过的事情了,但windows 10上安装docker,但Windows上安装docker 会存在两个问题:
1.windows中的docker 内核还是windows系统,在程序运行过程中因为内核问题不兼容
2.window10自带的Hyper-V会和VMware冲突,对于习惯使用VMware虚拟机的同学来说就有点鱼与熊掌不可兼得的复杂心情了。
笔者正是在这个情况下尝试在VMware的centos虚拟机中安装docker,然后利用本地VScode连接虚拟服务器中的docker,这样就完美的解决上述的问题
安装过程参考:https://segmentfault.com/a/1190000023095631 基本上已经很详细了
- 在windows上安装docker客户端
docker客户端下载地址: https://github.com/StefanScherer/docker-cli-builder/releases/ - 远程docker 服务启用端口2375的监听,供远程访问
在远程linux 服务器/etc/docker/daemon.json
文件中配置如下(没有这个文件就新建,docker启动时会自动加载):
{
"hosts": ["tcp://0.0.0.0:2357","unix:///var/run/docker.sock"]
}
- ps: 当然可以配置到dockerd 启动参数中
配置完加载并重启docker
systemctl daemon-reload
systemctl restart docker.service
- 在Windows10上生成密钥对
ssh-keygen #一路回车
ssh-copy-id 192.168.254.128 #复制秘钥到远程服务器
- docker context
一个Docker CLI 可以有多个context 。每个context 包含管理不同集群或节点所需的所有端点和安全信息。docker context命令可以很容易地配置这些上下文并在它们之间进行切换。简单来说就是docker context 可以管理多个docker服务,不管是本地,还是远程,甚至是swarm 或者 kubernetes 集群 例如:
docker context create docker-test \
--default-stack-orchestrator=swarm \
--docker host=unix:///var/run/docker.sock
docker 创建context
docker context create <context name> --docker "host=ssh://<user>@<host>"
docker context ls ##查看所有context
docker context use <context name> ##切换至制定context
docker version #查看连接信息
5. vscode 安装docker 插件
ssh 设置可能报错,解决办法如下
Set-Service ssh-agent -StartupType "Automatic"
Start-Service ssh-agent
除过上述方法之外,vscode也可以通过连接远程服务器的方式管理远程docker 。
方法:
安装Remote - SSH插件 直接使用vscode “远程资源管理器” 连接远程linux 服务器,然后使用docker插件再使用docker 管理,这种方式不需要额外配置,vscode 会自动连接到远程linux并再linux服务器上自动安装下载相关配置,等一切就绪你就可以在本地使用vscode操作远程linux了