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进行连接,连接成功后,在左侧选择"打开文件夹",输入文件路径即可
最终效果如下图所示
脉络终于打通,虚服~~~