在docker安装的centos容器内设置远程链接
Posted 互联网老辛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在docker安装的centos容器内设置远程链接相关的知识,希望对你有一定的参考价值。
写在前面
写在前面
运维这个行业,不需要按照顺序学习。
比如你学会了基础命令,直接学docker和k8s,和学会了基础命令开始学服务难度差不多。
再比如你学会了基础命令直接学shell脚本,也能学的会。
所以我一直主张,对于刚刚入门的小伙伴,学完基础命令之后,一定要开始尝试写脚本和在docker中继续学习其他内容。
把docker作为一个虚拟机反复去研究。
现在假设你已经会了linux中增删改查的常用命令,接下来就可以安装docker进行学习了。
为了学习,我们把docker安装好,作为虚拟机来折腾,当全部技能点学完,docker就已经算你最熟练的技能了。
接下来我们探讨使用docker安装centos7.9,并用xshell远程链接容器。
1 启动centos并设置端口映射,然后登录
[root@laoxin21 ~]# docker pull centos:centos7.9.2009
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:centos7.9.2009
docker.io/library/centos:centos7.9.2009
[root@laoxin21 ~]# docker run -itd --name=centos --privileged=true -p 5000:22
centos:centos7.9.2009 /usr/sbin/init
注意: 这里的5000是容器端口
– privileged=true 表示使用特权模式,使用这个参数的时候,容器内的root有用真正的root权限
执行后,会有重新登录的过程
[root@laoxin1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
8d423971d0d3 centos:centos7.9.2009 "/usr/sbin/init" 2 minutes ago
Up 2 minutes 0.0.0.0:5000->22/tcp, :::5000->22/tcp centos
[root@laoxin21 ~]# docker exec -ti centos /bin/bash
[root@8d423971d0d3 /]#
oot@c56102d9bb8c /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root
run sbin srv sys tmp usr var
[root@c56102d9bb8c /]#
2.安装常用工具及ssh服务
[root@c56102d9bb8c /]# yum install -y openssh-server vim lrzsz wget gcc-c++ pcre pcre-devel zlib zlib-devel ruby openssl openssl-devel patch bash-completion zlib.i686 libstdc++.i686 lsof unzip zip
[root@5225250654ba ~]# rpm -qa |grep -E "openssh" ## 查看是否安装openssh
[root@5225250654ba ~]# yum install openssh*
3. 安装ifconfig命令
[root@5225250654ba ~]# yum install net-tools
4. 安装sevice命令
oot@5225250654ba ~]# yum install initscripts ## 若能用systemctl启动,则可以不安装
也可以直接用systemctl 启动:
[root@8d423971d0d3 /]# systemctl start sshd
[root@8d423971d0d3 /]# netstat -antup | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 302/sshd
tcp6 0 0 :::22 :::* LISTEN 302/sshd
[root@8d423971d0d3 /]#
5. 重启sshd服务
[root@5225250654ba ~]# service sshd restart
Stopping sshd: Stopping sshd: [ OK ]
Generating SSH2 RSA host key: [ OK ]
Generating SSH2 ECDSA host key: [ OK ]
Generating SSH2 ED25519 host key: [ OK ]
Starting sshd: [ OK ]
[root@5225250654ba ~]#
6. 设置sshd 远程连接
此步骤可跳过,再无法使用xshell连接时候,可以尝试操作此步骤。
Vi /etc/ssh/sshd_config
/
7. 设置账号和密码
[root@5225250654ba ~]# whoami
root
[root@5225250654ba ~]# echo 12345678|passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.
[root@5225250654ba ~]#
8. 使用xshell连接
此处的密码为:docker的密码
连接成功:
至此连接成功。
以上是关于在docker安装的centos容器内设置远程链接的主要内容,如果未能解决你的问题,请参考以下文章