zoukankan      html  css  js  c++  java
  • 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进行连接,连接成功后,在左侧选择"打开文件夹",输入文件路径即可

    最终效果如下图所示

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

  • 相关阅读:
    数据绑定(八)使用Binding的RelativeSource
    你是程序猿这块料吗?
    创建与删除索引
    Verilog分频器
    mysql触发器的作用及语法
    QoS令牌桶工作原理
    Android 开发新方向 Android Wear ——概述
    程序猿接私活经验总结,来自csdn论坛语录
    [Node.js]27. Level 5: URL Building & Doing the Request
    [Node.js]26. Level 5 : Route rendering
  • 原文地址:https://www.cnblogs.com/zcqkk/p/13608811.html
Copyright © 2011-2022 走看看