在本文中,我们将给您介绍关于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容器)
- 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容器)
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?
面对这个屏幕,我已经设法在docker容器应用程序服务上轻松地将rails应用程序部署到azure,但是记录它是一个痛苦,因为他们访问日志的唯一方法是通过FTP.
有没有人想出一个在azure中运行docker run命令的好方法,所以它基本上接受任何参数.
在这种情况下,它试图简单地登录到远程服务,如果任何人还有其他建议检索除FTP之外的日志,将大量欣赏.
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
什么是 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 的这些优势主要体现在以下几个方面:
- 多级撤销 我们知道在 vi 里,按 u 只能撤销上次命令,而在 vim 里可以无限制的撤销。
- 易用性 vi 只能运行于 unix 中,而 vim 不仅可以运行于 unix,windows,mac 等多操作平台。
- 语法加亮 vim 可以用不同的颜色来加亮你的代码。
- 可视化操作 就是说 vim 不仅可以在终端运行,也可以运行于 x window、mac os、windows。
- 对 vi 的完全兼容 某些情况下,你可以把 vim 当成 vi 来使用。
vi 和 vim 都是 Linux 中的编译器,不同的是 vim 比较高级,可以视为 vi 的升级版本。vi 适用于文本编辑,但是 vim 更适用于 coding。
vi 有 3 个模式:插入模式、命令模式、低行模式。
插入模式:在此模式下可以输入字符,按 ESC 将回到命令模式
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出 vi、查找等功能 (低行模式也可以看作是命令模式里的)
Docker - 命令 - docker container
- 概述
- 整理 docker 容器的命令
1. 分类 (25 个)
-
查看
ls diff logs inspect port stats top
-
生命周期
pause prune create kill restart rm run start stop unpause wait
-
交互
cp exec attach
-
修改
rename update
-
构建镜像
commit
-
导出
export
2. 命令
1. 查看
-
ls
-
概述
- 查看 容器列表
-
命令
# 查看当前运行容器 # -a 可以查看 其他状态 容器 > docker container ls [-a]
-
-
stats
-
概述
- 实时刷新 容器 基本状态
- 内容
- 容器 id
- 容器名称
- cpu 使用率
- 内存使用 / 限制 使用率
- 网络 I/O
- 块 I/O
- PID
- 具体的参数,以后随缘吧
- 内容
- 实时刷新 容器 基本状态
-
命令
# 查看所有容器状态 > docker container stats # 查看 单个 容器状态 > docker container stats <containerName|containerID>
-
-
top
-
概述
- 查看 容器 进程基本状态
- 具体的参数,以后随缘吧
- 查看 容器 进程基本状态
-
命令
# 查看 单个 容器 状态 > docker container top <containerName|containerID>
-
-
inspect
-
概述
- 查看 容器 各种基本信息
-
命令
# 查看 单个 容器 基本信息 > docker container inspect <containerName|containerID>
-
-
log
-
概述
- 查看 容器 日志
- 待补充,我没成功...
-
命令
> docker container logs <containerName|containerID>
-
ref
- Docker logs 命令
- 命令有点不同,功能参数结果基本相似
- Docker logs 命令
-
-
port
-
概述
- 查看 容器 端口映射
- 待补充,我没成功...
-
命令
> docker container port <containerName|containerID>
-
ref
- Docker port 命令
- 命令有点不同,功能参数结果基本相似
- Docker port 命令
-
-
diff
-
概述
- 查看 容器 变化记录
- 主要还是 文件系统 的改变
- 集体的变化,我还是不太明白
- 查看 容器 变化记录
-
命令
> docker container diff <containerName|containerID>
-
4. 修改
-
rename
-
概述
- 重命名容器
-
命令
> docker container rename <containerName|containerID> <newName>
-
-
update
- 概述
- 调整 容器 参数
- 主要是 cpu, 内存,io 1 这些需要研究,我还不懂
- 调整 容器 参数
- 概述
2. 生命周期
-
run
-
概述
- 启动容器,并执行命令
- 参数众多,感觉以后还得好好看看
- 启动容器,并执行命令
-
命令
# 前台执行 > docker container run [options] -it <image> <cmd> # 后台执行 > docker container run [options] -dt <image> <cmd>
-
-
create
-
概述
- 创建一个容器
- 但是不启动它
- 用得不多
- 通常用 run
- 用到了再看吧
- 创建一个容器
-
命令
- 略
-
-
stop
-
概述
- 停止一个 正在运行的 容器
-
命令
> docker container stop <containerName|containerID>
-
-
start
-
概述
- 启动一个 已经停止的 容器
-
命令
> docker container start <containerName|containerID>
-
-
restart
-
概述
- 重新启动一个容器
-
命令
> docker container restart <containerName|containerID>
-
-
kill
-
概述
- kill 一个容器
-
命令
> docker container kill <containerName|containerID>
-
-
pause
-
概述
- 暂停 运行中 一个容器
-
命令
> docker container pause <containerName|containerID>
-
-
unpause
-
概述
- 取消一个 暂停中 容器
-
命令
> docker container unpause <containerName|containerID>
-
-
wait
-
概述
- 让直行命令的终端,进入阻塞状态
- 直到 命令行 指定的 docker 容器退出
- 用途目前还不是太了解
- 参数也不少,以后可能会单独讲解
-
命令
> docker container wait <containerName|containerID>
-
-
rm
-
概述
- 删除一个 容器
-
命令
> docker container rm <containerName|containerID>
-
-
prune
-
概述
- 删除所有 stop 状态的容器
-
命令
> docker container prune <containerName|containerID>
-
3. 交互
-
attach
-
概述
- 连接 运行 状态的容器
-
命令
> docker container -it attach <containerName|containerID>
-
-
exec
-
概述
- 对 运行 状态的容器 发布命令
-
命令
> docker container -it exec <containerName|containerID> <cmd>
-
-
cp
-
概述
- 在 主机 和 容器之间,拷贝文件
-
命令
# 把 主机 的内容拷贝到 容器 中 > docker container cp <hostPath> <containerName|containerID:<containerPath> # 把 容器 的内容拷贝到 主机 中 > docker container cp <containerName|containerID:<containerPath> <hostPath>
-
5. 构建镜像
- commit
-
概述
- 将 运行 状态的容器 发布为镜像
- 有 其他的 选项,暂时不讲
- 因为不会
-
命令
> docker container commit <containerName|containerID> [<repo>:<tag>]
-
6. 导出
- export
-
概述
- 对 运行 状态的容器 发布命令
-
命令
> docker container export -o <file> <containerName|containerID>
-
ps
- 资源
- 存储
- 网络
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 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的相关知识,请在本站进行查询。
本文标签: