当前位置: 首页 > news >正文

mac下ssh连接docker使用centos

配置ssh连接docker

本机信息 Apple M2/ macOS Ventura 13.1

完整实现如下

  1. 使用docker下载centos镜像

docker pull centos:centos7  
# centos7 指定安装版本
  1. 查看本地镜像

# 使用以下命令查看是否已安装了centos7

➜  ~ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       centos7   c9a1fdca3387   11 months ago   301MB
  1. docker 启动centos镜像

docker run --privileged -d  --name=centos_server c9a1fdca3387 /usr/sbin/init

# --name=容器名字(自己随便起一个即可,别名)
# c9a1fdca3387 为 image id,通过docker images来查看 
# –privileged 和 /usr/sbin/init 很重要,必须要带上,否则后面启动ssh服务时会报错
# Failed to get D-Bus connection: Operation not permitted
  1. 进入容器,修改root密码

(如果此步骤不执行,直接使用普通用户来ssh,我尝试了行不通)

# 1. 查看正在运行的容器
docker ps  

# 2. 进入容器中(centos_server为容器名字)
docker exec -it centos_server /bin/bash

# 以下命令均在容器中执行
# 3. 清除root账号的密码
passwd -d root

# 4. 修改root密码
passwd root 

以下均为在容器中的操作

  1. 修改ssh配置,允许root登录

  • 查看是否安装了ssh-server服务

yum list installed | grep openssh-server
  • 安装ssh-server

yum install openssh-server

# 安装ssh-client(按自己需要、可以不安装)
yum install openssh-clients
  • 修改配置

vim /etc/ssh/sshd_config
# 如下图所示 修改三处

# 如果没有安装vim,执行
yum install vim
  1. 开启ssh服务

# 1. 检查ssh服务是否已开启
ps -e | grep sshd  
# 或者检查22端口是否开启  
netstat -an | grep 22

# 2. 如果没安装service,先安装
yum install initscripts -y

# 3. 运行ssh 
service sshd start 
# 或 systemctl start sshd.service

# 4. 查看是否开启了ssh服务
ps -e | grep sshd
  1. 退出容器

exit
  1. 提交这个容器为一个新的image

docker commit 容器id 镜像名称
  1. 使用新的镜像启动一个制定了ip映射的新容器

# 把容器的22端口映射到50001
docker run --name 容器名称 -it -p 15001:22 镜像id /usr/sbin/sshd -D
  1. 在本地主机ssh登录docker

ssh root@localhost -p 50001

# 这里注意:只能root用户ssh,连上之后可以切换其他普通用户
  1. vscode ssh 登录docker

vscode安装docker插件方便使用,可以直接运行/退出/删除...容器

同连接远程服务器一样,只不过用root用户连接之后再切换成普通用户使用(保证安全,不使用root用户)

遇到的问题

  • 使用yum安装软件,出现Loaded plugins:fastestmirror,ovl

目前感觉是不用去解决这个问题,搜一下看自己要安装的软件,多半是因为安装包名字不对

安装ifconfig命令的语句是:yum install net-tools

可参考:https://blog.csdn.net/hechenhongbo/article/details/85289648

  • 如果启动ssh服务的时候报错

Failed to get D-Bus connection: No such file or directory

cat ~/Library/Group\ Containers/group.com.docker/settings.json|grep deprecatedCgroupv1
  "deprecatedCgroupv1": false,

# 将deprecatedCgroupv1由false --> true
vi ~/Library/Group\ Containers/group.com.docker/settings.json
cat ~/Library/Group\ Containers/group.com.docker/settings.json|grep deprecatedCgroupv1
  "deprecatedCgroupv1": true,

重启docker,再执行上面ssh配置步骤重新设置privileged

docker简单用法

  • 查看可用的centos版本

访问 CentOS 镜像库地址:https://hub.docker.com/_/centos?tab=tags&page=1

  • 以上步骤中1~4为docker安装centos

  • 运行一个容器

(可以简单理解为创建一个虚拟机,创建好之后可以一直用;centos7是镜像,如果把系统搞坏了可以删除容器重新建;每个容器维护自己的centos配置)

docker run -itd --name centos-test centos:centos7
  • 进入容器

docker exec -it centos-test /bin/bash

# 进入之后,就可以开始使用centos系统了 
  • 查看容器运行信息

docker ps

centos新系统软件安装

  1. 默认只有root用户,添加普通用户

adduser aa
passwd xxx
  1. root下安装sudo

[root@e9267ae0ad14 /]# yum install sudo

[root@e9267ae0ad14 /]# visudo
root ALL=(ALL) ALL 
aa   ALL=(ALL) ALL   #将新创建的用户加入进来,aa可以使用sudo
  1. 此后切换到新建的用户进行使用

su 用户名   # 从root用户切换到普通用户
ctrl + D   # 从普通用户切换到root用户
  1. 安装ifconfig

[aa@48c8778377f8 /]$ yum install net-tools

查看该容器对应的ip

[aa@48c8778377f8 /]$ ifconfig

参考:

https://blog.csdn.net/cai454692590/article/details/85911333 (1~5步)

中间修改docker的配置并重启(我自己电脑)

https://juejin.cn/post/6881881918087331853 (5~8步)

相关文章:

  • 网站建设设计风格如何与色彩搭配/最靠谱的十大教育机构
  • 网络直播营销的方式有哪些/郑州seo公司哪家好
  • 网站如何做线上和线下推广/手机端关键词排名免费软件
  • 旅游网站开发指导/百度网站快速排名公司
  • 佛山营销网站建设服务/最新seo课程
  • 怎么做网站下载链接/seo关键词排名优化系统源码
  • 秒懂系列之 Java 并发编程面试题
  • 【已解决】WARNING: Ignoring invalid distribution xxx
  • 【C++】非递归实现二叉树的前中后序遍历
  • 【数据结构】双向链表
  • 为什么书呆子不受欢迎-《黑客与画家》
  • “链引擎”(PBC)计划 | 太保集团长安链应用展示
  • 滑动列表中使用粒子特效层级问题
  • maven常见面试题
  • ASUS X415安装系统找不到硬盘解决办法
  • PHP MySQL 创建数据库
  • Linux--线程互斥与同步--0112 13
  • 基于域控的SSO单点登录