GVKun编程网logo

ssh 登录进入 docker container(ssh登录docker容器)

13

在本文中,我们将给您介绍关于ssh登录进入dockercontainer的详细内容,并且为您解答ssh登录docker容器的相关问题,此外,我们还将为您提供关于AzureDockerContainer

在本文中,我们将给您介绍关于ssh 登录进入 docker container的详细内容,并且为您解答ssh登录docker容器的相关问题,此外,我们还将为您提供关于Azure Docker Container – 如何将启动命令传递给docker run?、Docker - > Container、Docker - 命令 - docker container、docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro的知识。

本文目录一览:

ssh 登录进入 docker container(ssh登录docker容器)

ssh 登录进入 docker container(ssh登录docker容器)

1、Container 安装 ssh 服务,博主的 linux 是 centos

① 安装 ssh

sudo yum install openssh-server #安装 ssh 服务器

service sshd status # 查看 ssh 服务启动情况

service sshd start # 启动 ssh 服务

② 配置 ssh,允许 root 登陆

vi /etc/ssh/sshd_config

将 PermitRootLogin 的值从 withoutPassword 改为 yes

③ 重启 ssh 服务

service sshd restart # 重启动 ssh 服务

2、保存 Container 镜像

3、重新运行 Container

docker run -it -p 50001:22 tomjerry/foobar /bin/bash
service sshd start
注意 - p 50001:22 这句,意思是将 docker 的 50001 端口和 container 的 22 端口绑定,这样访问 docker 的 50001 等价于访问 container 的 22 端口

4、ssh 连接 container

你可以用 xshell 或 putty 等 ssh 客户端工具连接 container,首先假设各方的 ip 如下:

本地 windows ip: 192.168.99.1

docker ip:10.0.75.1

container ip:172.17.0.2

那么,你要远程 container,则要访问以下地址:

ssh 192.168.99.100:50001

这样通过访问 docker 的 50001 端口,就神奇的间接连通到 container 的 22 端口了,从而达到 ssh 连接 container 的目的。

 

如果 root 登录仍提示需要密码,可以新建一个账户,分配密码,再给这个账户设置从普通账户切换到 root 账户的权限

#chmod u+w /etc/sudoers
#echo "xxx        ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers
#chmod u-w /etc/sudoers

敲入 sudo su -s,即可

Azure Docker Container – 如何将启动命令传递给docker run?

Azure Docker Container – 如何将启动命令传递给docker run?

面对这个屏幕,我已经设法在docker容器应用程序服务上轻松地将rails应用程序部署到azure,但是记录它是一个痛苦,因为他们访问日志的唯一方法是通过FTP.

enter image description here

有没有人想出一个在azure中运行docker run命令的好方法,所以它基本上接受任何参数.

在这种情况下,它试图简单地登录到远程服务,如果任何人还有其他建议检索除FTP之外的日志,将大量欣赏.

最佳答案
不,在撰写本文时,这是不可能的,您只能传递您通常会传递给docker run container的任何内容:tag%YOUR_STARTUP_COMMAND_WILL_GO_HERE_AS_IS%,因此在您的容器名称之后.

TLDR除了需要在容器中运行的命令外,您无法将任何启动参数传递给Linux WebApp.让我们说你想使用PROD标签运行名为MYPYTHON的容器并运行一些python代码,你会做这样的事情

Startup Command = /usr/bin/python3 /home/code/my_python_entry_point.py

这将被附加(仅在非常结束)到实际的docker命令:

docker run -t username/MYPYTHON:PROD /usr/bin/python3 /home/code/my_python_entry_point.py

Docker - > Container

Docker - > Container

什么是 Container

  • 通过 Image 创建 (copy)
  • 在 Image layer 之上建立一个 container layer (可读写)
  • 类比面向对象:类和实例
  • Image 负责 app 的存储和分发,Container 负责运行 app

docker container ls 可以例举出来本地正在运行的容器

docker container ls -a 例举出所有的容器,包括正在运行的或已经结束的

里面有 COMMAND 字段如:“/hello”,代表着 Dockerfile 里的 CMD ["/hello"]

more hello-world/Dockerfile 查看这个文件里面的配置

当我们用 docker run xxx (image) 运行 container 的时候默认会执行 CMD ["/hello"] 里面的命令 

docker run xxx 命令是运行完就结束的,它不是一个常驻内存的一个进程

centos 是一个比较复杂的 image,可以使用 docker run centos 执行这个 image,如果

里面有 centos 版本的化可以 docker run centos:7 进行指定版本运行

交互式运行容器的方法:

  • docker run -it centos 可以常驻内存,运行后不会直接退出
  • docker run --help 查询 docker 运行的帮助
  • docker run -i xxx 是交互式的 -i 代表 interactive (交互式)
  • docker run -t xxx 代表 Allocate a pseudo-TTY

每创建一个容器实际上就是在之前的 image 上多了一层,使用 docker container ls 查看正在运行的容器,如 hello-world 

docker container ls -a 可以查看所有已经退出或者正在运行容器,那么我们如何进行删除呢?

命令:docker 查看 docker 有哪些命令 

输入 docker 命令有两个模块,一个是 Management Commands,一个是 Commands

Management Commands 是对 docker 里面的一些对象进行管理的命令

命令:docker container rm (container 的 ID)

命令:docker container ls -a (所有 container 运行或已退出的容器)

命令:docker container ls -aq (列举出来所有的 container ID) 和 docker container ls -a | awk {''print$1''} 是一样的

命令:docker rm $(docker container ls -aq) 删除所有正在运行的 container 

命令:docker container ls -f "status=exited" 把所有状态为 exited 的 container 列举出来,后面加个 -q 则只列出 ID

命令:docker rm $(docker container  ls -f "status=exited" -q) 将所有状态为 exited 的 container 删除

命令:docker ps -a 和 docker container ls -a 一样

命令:docker rm (container 的 ID) 和 docker container rm (container 的 ID) 是一样的效果

命令:docker images 和 docker image ls 也是一样的效果

命令:docker image rm (image 的 ID) 删除某个 image

命令:dokcer rmi (image ID) 和 docker image rm (imaged 的 ID) 是一样的

运行 centos 容器:docker run -it centos 进入默认 centos 

在 centos 里可以创建文件,也可以对这个文件进行编辑,同样这个 centos 也有 yum 这个命令

这里顺便解释下 vi 和 vim 的区别,因为 centos 它本身没有安装 vim :

它们都是多模式编译器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面

vim 的这些优势主要体现在以下几个方面:

  1. 多级撤销 我们知道在 vi 里,按 u 只能撤销上次命令,而在 vim 里可以无限制的撤销。
  2. 易用性 vi 只能运行于 unix 中,而 vim 不仅可以运行于 unix,windows,mac 等多操作平台。
  3. 语法加亮 vim 可以用不同的颜色来加亮你的代码。
  4. 可视化操作 就是说 vim 不仅可以在终端运行,也可以运行于 x window、mac os、windows。
  5. 对 vi 的完全兼容 某些情况下,你可以把 vim 当成 vi 来使用。

vi 和 vim 都是 Linux 中的编译器,不同的是 vim 比较高级,可以视为 vi 的升级版本。vi 适用于文本编辑,但是 vim 更适用于 coding。

vi 有 3 个模式:插入模式、命令模式、低行模式。

插入模式:在此模式下可以输入字符,按 ESC 将回到命令模式

命令模式:可以移动光标、删除字符等。

低行模式:可以保存文件、退出 vi、查找等功能 (低行模式也可以看作是命令模式里的)

 

 

 

 

 

 

 

 

 

 

Docker - 命令 - docker container

Docker - 命令 - docker container

  1. 概述
    1. 整理 docker 容器的命令

1. 分类 (25 个)

  1. 查看

    ls	
    diff
    logs
    inspect	
    port
    stats	
    top	
    
  2. 生命周期

    pause
    prune	
    create
    kill
    restart	
    rm	
    run	
    start	
    stop
    unpause	
    wait
    
  3. 交互

    cp	
    exec	
    attach	
    
  4. 修改

    rename
    update	
    
  5. 构建镜像

    commit	
    
  6. 导出

    export	
    

2. 命令

1. 查看

  1. ls

    1. 概述

      1. 查看 容器列表
    2. 命令

      # 查看当前运行容器
      # -a 可以查看 其他状态 容器
      > docker container ls [-a]
      
  2. stats

    1. 概述

      1. 实时刷新 容器 基本状态
        1. 内容
          1. 容器 id
          2. 容器名称
          3. cpu 使用率
          4. 内存使用 / 限制 使用率
          5. 网络 I/O
          6. 块 I/O
          7. PID
        2. 具体的参数,以后随缘吧
    2. 命令

      # 查看所有容器状态
      > docker container stats
      # 查看 单个 容器状态
      > docker container stats <containerName|containerID>
      
  3. top

    1. 概述

      1. 查看 容器 进程基本状态
        1. 具体的参数,以后随缘吧
    2. 命令

      # 查看 单个 容器 状态
      > docker container top <containerName|containerID>
      
  4. inspect

    1. 概述

      1. 查看 容器 各种基本信息
    2. 命令

      # 查看 单个 容器 基本信息
      > docker container inspect <containerName|containerID>
      
  5. log

    1. 概述

      1. 查看 容器 日志
      2. 待补充,我没成功...
    2. 命令

      > docker container logs <containerName|containerID>
      
    3. ref

      1. Docker logs 命令
        1. 命令有点不同,功能参数结果基本相似
  6. port

    1. 概述

      1. 查看 容器 端口映射
      2. 待补充,我没成功...
    2. 命令

      > docker container port <containerName|containerID>
      
    3. ref

      1. Docker port 命令
        1. 命令有点不同,功能参数结果基本相似
  7. diff

    1. 概述

      1. 查看 容器 变化记录
        1. 主要还是 文件系统 的改变
      2. 集体的变化,我还是不太明白
    2. 命令

      > docker container diff <containerName|containerID>
      

4. 修改

  1. rename

    1. 概述

      1. 重命名容器
    2. 命令

      > docker container rename <containerName|containerID> <newName>
      
  2. update

    1. 概述
      1. 调整 容器 参数
        1. 主要是 cpu, 内存,io 1 这些需要研究,我还不懂

2. 生命周期

  1. run

    1. 概述

      1. 启动容器,并执行命令
        1. 参数众多,感觉以后还得好好看看
    2. 命令

      # 前台执行
      > docker container run [options] -it <image> <cmd>
      # 后台执行
      > docker container run [options] -dt <image> <cmd>
      
  2. create

    1. 概述

      1. 创建一个容器
        1. 但是不启动它
      2. 用得不多
        1. 通常用 run
        2. 用到了再看吧
    2. 命令

  3. stop

    1. 概述

      1. 停止一个 正在运行的 容器
    2. 命令

      > docker container stop <containerName|containerID>
      
  4. start

    1. 概述

      1. 启动一个 已经停止的 容器
    2. 命令

      > docker container start <containerName|containerID>
      
  5. restart

    1. 概述

      1. 重新启动一个容器
    2. 命令

      > docker container restart <containerName|containerID>
      
  6. kill

    1. 概述

      1. kill 一个容器
    2. 命令

      > docker container kill <containerName|containerID>
      
  7. pause

    1. 概述

      1. 暂停 运行中 一个容器
    2. 命令

      > docker container pause <containerName|containerID>
      
  8. unpause

    1. 概述

      1. 取消一个 暂停中 容器
    2. 命令

      > docker container unpause <containerName|containerID>
      
  9. wait

    1. 概述

      1. 让直行命令的终端,进入阻塞状态
      2. 直到 命令行 指定的 docker 容器退出
      3. 用途目前还不是太了解
      4. 参数也不少,以后可能会单独讲解
    2. 命令

      > docker container wait <containerName|containerID>
      
  10. rm

    1. 概述

      1. 删除一个 容器
    2. 命令

      > docker container rm <containerName|containerID>
      
  11. prune

    1. 概述

      1. 删除所有 stop 状态的容器
    2. 命令

      > docker container prune <containerName|containerID>
      

3. 交互

  1. attach

    1. 概述

      1. 连接 运行 状态的容器
    2. 命令

      > docker container -it attach <containerName|containerID>
      
  2. exec

    1. 概述

      1. 对 运行 状态的容器 发布命令
    2. 命令

      > docker container -it exec <containerName|containerID> <cmd>
      
  3. cp

    1. 概述

      1. 在 主机 和 容器之间,拷贝文件
    2. 命令

      # 把 主机 的内容拷贝到 容器 中
      > docker container cp <hostPath> <containerName|containerID:<containerPath> 
      # 把 容器 的内容拷贝到 主机 中
      > docker container cp <containerName|containerID:<containerPath> <hostPath> 
      

5. 构建镜像

  1. commit
    1. 概述

      1. 将 运行 状态的容器 发布为镜像
      2. 有 其他的 选项,暂时不讲
        1. 因为不会
    2. 命令

      > docker container commit <containerName|containerID> [<repo>:<tag>]
      

6. 导出

  1. export
    1. 概述

      1. 对 运行 状态的容器 发布命令
    2. 命令

      > docker container export -o <file> <containerName|containerID>
      

ps

  1. 资源
    1. 存储
    2. 网络

docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro

docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro

使用 docker exec -it Nginx /bin/bash  提示错误@H_301_1@

OCI runtime exec Failed: exec Failed: container_linux.go:370: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unkNown@H_301_1@

 @H_301_1@

解决办法:@H_301_1@

docker exec -it Nginx /bin/sh@H_301_1@

今天的关于ssh 登录进入 docker containerssh登录docker容器的分享已经结束,谢谢您的关注,如果想了解更多关于Azure Docker Container – 如何将启动命令传递给docker run?、Docker - > Container、Docker - 命令 - docker container、docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro的相关知识,请在本站进行查询。

本文标签: