Skip to content

docker使用 #7

@cyinen

Description

@cyinen

使用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]

  1. 执行以下命令,打开 sshd_config 配置文件。
sudo vi /etc/ssh/sshd_config
  1. 按 i 切换至编辑模式,找到 #Authentication,将 PermitRootLogin 参数修改为 yes。如果 PermitRootLogin 参数被注释,请去掉首行的注释符号(#)。如下图所示:

  1. 找到 #Authentication,将 PasswordAuthentication 参数修改为 yes。如下图所示:说明
    若 sshd_config 配置文件中无此配置项,则添加 PasswordAuthentication yes 项即可。

  1. 按 Esc,输入 :wq,保存文件并返回。

执行以下命令,重启 ssh 服务。

sudo service ssh restart

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions