-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
使用ubuntu容器,会在容器内安装ssh服务,但是会发现当容器重启后,如何实现ssh服务自动重启呢?可以使用Dockerfile参看此处 ,本文介绍一种在docker容器中进行配置的方法
安装ssh服务
-
检查容器中是否有ssh服务
$ /etc/init.d/ssh status
-
若没有相关ssh服务,则需进行ssh安装
$ sudo apt-get install openssh-server
-
设置允许root 远程访问
# 打开配置文件 $ vim /etc/ssh/sshd_config # 在#PermitRootLogin prohibit-password下添加如下内容 PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes
-
重启ssh服务
$ service ssh restart # 或者: $ systemctl restart sshd #由于容器中不能调用 systmctl命令,故命令只在宿主机配置ssh时使用 ,容器中使用service
-
配置容器内的用户密码
$ passwd #该密码可用于远程登录
- 从文件加载docker
docker load --input mssql-2019-with-cimb.tar
设置开机自启
-
在宿主机上设置开机自启可动
$ sudo systemctl enable ssh -
在容器中设置开机自启动(登陆容器时,即触发)
# 找到并打开文件/root/.bashrc $ vim /root/.bashrc # 在.bashrc末尾添加如下代码 $ service ssh start
- pip 导出环境
pip freeze > requirements.txt
docker容器在启动的时候,会自动执行的是~/.bashrc文件,所以,环境变量需要配置在该文件内,这样镜像启动时,可自动执行该文件,使环境变量生效。
docker 常用命令
使用小技巧:先开一个tmux窗口然后进入容器。这样就不用退出容器
进入容器 - Docker — 从入门到实践 (gitbook.io)
进入容器
docker exec -it <container_id> <command>
# docker 镜像保存迁移
# 打包镜像
docker save apex-pytorch > apex-pytorch.tar
# load 镜像
cat apex-pytorch.tar | docker load
docker load --input xxx.tar
# docker 免sudo 使用
- 创建 docker 的用户组: sudo groupadd docker
- 将当前 user 加入 docker 的用户组: sudo usermod-aG docker $USER
- 重启 docker:
1. sudo snap restart docker
2. sudo service docker restart
3. sudo /etc/init.d/docker restart
4.
#ssh配置
[!tips]
- 执行以下命令,打开
sshd_config配置文件。
sudo vi /etc/ssh/sshd_config
- 按 i 切换至编辑模式,找到
#Authentication,将PermitRootLogin参数修改为yes。如果PermitRootLogin参数被注释,请去掉首行的注释符号(#)。如下图所示:
- 找到
#Authentication,将PasswordAuthentication参数修改为 yes。如下图所示:说明
若sshd_config配置文件中无此配置项,则添加PasswordAuthentication yes项即可。
- 按 Esc,输入 :wq,保存文件并返回。
执行以下命令,重启 ssh 服务。
sudo service ssh restart
Metadata
Metadata
Assignees
Labels
No labels

