docker相关

docker相关资料

1.docker中文文档

docker使用一些心得

1.进入容器的方式,attach和exec

使用attach进入经常会卡死,在网上找到了一些说明,但不知道是否属实,如下

为什么执行 docker attach 卡住了?
首先要明确的是 docker attach 不是一个用来进入容器的命令, 或者说他不是用来在容器内运行一个 bash(shell) 的命令, 它是用来连接到容器中运行中的进程, 也就是容器的 CMD, 容器内 PID=1 的那个进程, 如果这个进程没有 stdout/stderr 那么你将看不到任何输出, 如果它没有接收 stdin 你也无法发送指令给它. 这也就是为什么你运行一个 bash 的容器, 就可以 attach 进去执行命令, 而你运行一个 mysql server 的容器就无法操作的原因

总之,现在来看还是使用交互式的exec -it来的方便

docker exec -it 容器id /bin/bash

  1. docker的守护态运行

让docker在后台运行,在启动容器的时候加上"-d"命令

docker run -d
3. 来自中文文档里的使用Supervisor来管理进程

Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具。
暂时先这么多吧。

发现我运行一个新的容器的时候,卡住了,一直显示

*** Running /etc/rc.local…
*** Booting runit daemon…
*** Runit started as PID 8

正在排查…

错误原因,要加上-d(daemon模式),使docker在后台运行。另外创建的时候,不使用docker,这里使用nvidia-docker,使得容器能够加载nvidia的配置环境。

nvidia-docker run -d --name USER_NAME -v /home/USER_NAME:/home/USER_NAME -p 7003:22 IMAGE_NAME /sbin/my_init

又发现一个问题,root设置了新密码后,无法以root身份登录。但是却可以以一般身份登录。倒腾了很久,后来发现是/etc/passwd里的root这一行信息有误,root里加载的shell写成了/usr/zsh,/usr下根本没有zsh,改成了/bin/zsh就可以了。

使用xmanager直连docker

需要使用ssh的方式进行连接。如果配置好了端口号,仍然无法连接,可能是ssh没有启动,关于ssh的使用方法参考这里Ubuntu 16.04开启SSH服务

简单一句命令

sudo service ssh start

开启docker服务

systemctl start docker
systemctl start nvidia-docker

你可能感兴趣的:(工具)