vscode+docker+ssh搭建开发环境

1. docker安装linux镜像

拉取镜像:

docker pull ubuntu:16.04

运行容器,并设置ssh端口(容器22端口映射到主机9022)、文件夹映射(容器/host文件夹映射主机d:\docker_fold):

docker run -itd --name ubuntu_vscode_dev -p 9022:22 -v /d/docker_fold:/host ubuntu:16.04 /bin/bash

在安装完开发环境后,可以考虑将容器打包成镜像文件,以后需要时可以很方便的使用:

docker export ubuntu_vscode_dev > d:/docker/images/ubuntu_vscode_dev.tar

2. docker容器安装ssh

和ubuntu中安装ssh一样的,不过需要先apt update,否则apt将获取不到openssh-server。

切换到root用户:

su

为root添加密码:

passwd

更新apt,可以先设置一下国内的镜像源:

apt update
apt upgrade

安装openssh-server:

apt install openssh-server

启动ssh:

service ssh start

查看ssh状态:

service ssh status

重启ssh:

service ssh restart

注意,需要配置一下ssh,不然可能连接不上:
修改 /etc/ssh/sshd_config 这个配置文件:

PermitRootLogin yes
PasswordAuthentication yes
UsePAM no

然后重启ssh即可。

2.1 ssh 开机自动启动

ssh设置开机自动启动,网上很多都说用systemctl enable ssh这个命令,但我试了没用,可以使用脚本:

  1. 在/root目录下创建startup_ssh.sh脚本

#!/bin/bash

LOGTIME=$(date “+%Y-%m-%d %H:%M:%S”)
echo “[$LOGTIME] startup ssh run…” >>/root/startup_ssh.log
service ssh start >>/root/startup_ssh.log

  1. 修改 /root/.bashrc,在最后添加以下几句脚本

#startup ssh
if [ -f /root/startup_ssh.sh ]; then
/root/startup_ssh.sh
fi

  1. 使其生效

source /root/.bashrc

完美!!!

3. vscode连接ssh

安装remote插件;
点击左下角的Open a Remote Window按钮,输入:ssh [email protected] -A -p 9022,输入密码,ok!

4. 增加端口号映射

在使用中,经常会有增加服务的情况,要把新增端口号映射出来。
以下以windows中的docker为例。

  1. 找到docker容器的配置文件夹
# 使用cmd或powershell进入容器配置路径
> cd \\wsl$\docker-desktop-data\version-pack-data\community\docker\containers
# 打开文件夹
> explorer.exe .

在这个文件夹中下有根据容器的id命名的文件夹

  1. 关闭容器和docker

  2. 修改config.v2.json和hostconfig.json文件
    找到需要修改的容器的配置文件夹,打开config.v2.json和hostconfig.json,共有3个地方要修改:
    示例有22->9022和8888->9088两个端口映射。
    config.v2.json有两个地方要修改:Ports和ExposedPorts

"Ports":{"22/tcp":[{"HostIp":"0.0.0.0","HostPort":"9022"},{"HostIp":"::","HostPort":"9022"}],"8888/tcp":[{"HostIp":"0.0.0.0","HostPort":"9088"},{"HostIp":"::","HostPort":"9088"}]}

"ExposedPorts":{"22/tcp":{},"8888/tcp":{}}

hostconfig.json有一个地方要修改:PortBindings

"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"9022"}],"8888/tcp":[{"HostIp":"","HostPort":"9088"}]}
  1. 启动docker

  2. 启动容器
    就可以看到映射了:
    vscode+docker+ssh搭建开发环境_第1张图片

你可能感兴趣的:(docker,vscode,ssh)