Mac上使用docker安装centos,使用ssh登录centos容器,使用vscode通过ssh查看远程代码

1. 安装并启动CentOS

查找centos

docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   6169                [OK]

下载官方镜像

docker pull centos
Using default tag: latest
latest: Pulling from library/centos
3c72a8ed6814: Pull complete
Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
 

查看本地镜像

docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
centos                   latest              0d120b6ccaa8        3 weeks ago         215MB

docker/getting-started   latest              3c156928aeec        4 months ago        24.8MB
 

启动镜像

docker run -it --name mycentos centos /bin/bash
[root@e004eb1cfe65 /]# pwd
/
[root@e004eb1cfe65 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
启动后会进入centos的伪终端中,终于进入到熟悉的世界了,啥都不说了,开搞。一顿操作之后,关闭了终端,再然后???!!!。。。
 
 

遇到的问题:

Q1:如果退出伪终端后,想再进入怎么办?

不能再执行"docker run -t -i centos /bin/bash",这样实际上是创建了一个新的【容器】,里面没有我们之前安装配置的东西。
应当使用docker ps -a查看所有容器,找到自己之前运行的容器,使用"docker start <容器ID>"启动容器,再使用"docker exec -it <容器ID> /bin/bash"启动伪终端,这样就回到了安装过软件的环境中了。
如果想清理掉没用的容器,可以使用docker rm <容器ID>,如果容器正在运行会报错,需要使用docker stop <容器ID>先把容器停掉。
 

Q2:配置环境变量后退出伪终端,再重新进入伪终端后,环境变量未生效怎么办?

把环境变量放到/root/.bashrc文件中

2. 使用ssh登录centos容器

安装ssh相关软件

yum install passwd openssl openssh-server openssh-clients -y

配置root密码

passwd root

创建新的镜像

docker commit <容器ID> mycentos

使用新镜像运行容器

docker run -itd -p 18022:22 --privileged --name myCentos mycentos /usr/sbin/init 

启动sshd

systemctl start sshd.service
如果systemctl报错:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

需在运行/启动容器的时候携带命令/usr/sbin/init

# ll /usr/sbin/init
lrwxrwxrwx 1 root root 22 Jul 21 14:57 /usr/sbin/init -> ../lib/systemd/systemd
 

在mac上使用ssh登录centos

ssh -p 18022 root@127.0.0.1
 

3. 使用vscode通过ssh查看远程代码

安装Remote-SSH插件,安装成功后再左下角出现一个绿色图标(如图所示)

点击绿色图标(或cmd+shift+p),选择Contect to Host

接下来选择Add New SSH Host,并输入"ssh -p 18022 root@127.0.0.1"

选择添加好的host进行连接,连接成功后,在左侧选择"打开文件夹",输入文件路径即可

最终效果如下图所示

脉络终于打通,虚服~~~ 

原文地址:https://www.cnblogs.com/zcqkk/p/13608811.html