docker centos:latest 使用 sshd

一、术语

 1.容器

很多用户在接触Docker 之初都会认为容器就是一种轻量级的虚拟机,但实际上,容器和虚拟机有非常大的区别。从根本形态上来看,容器其实就是运行在操作系统上的一个进程,只不过加入了对资源的隔离和限制。

2.镜像

容器是一个动态的概念,而镜像是一个相对静止的概念。简单来说,镜像就是容器中的文件系统。镜像就是由Layered FS 组成的,并且它是只读的。当容器运行时,会在镜像之上再加上一层可读可写层。

3.容器和镜像的关系

容器和镜像是密切相关的,二者缺一不可,也是可以相互进行转换的。通过docker run  即可启动一个容器运行。当需要将容器转化为镜像时,可以通过docker commit 进行转化。

4.安装docker

https://www.docker.com/community-edition

 

二、拉取远程镜像 centos:latest

docker pull centos:latest

该命令会去远程镜像库拉取,拉取成功后使用命令查看

docker images

 

三、创建容器

docker run --name centosCon1 -i -t  -p 5001:22 centos:latest /bin/bash

docker run 参数详解:


     1. --name   --表示容器名称

     2. -i     -- 以交互模式运行容器,通常与 -t 同时使用

     3. -t     --  为容器重新分配一个伪输入终端,通常与 -i 同时使用

     4. -p    -- 指定容器暴露的端口

     5. 5001:22  -- 表示将宿主机5001端口映射到容器中暴露的22端口

     6. centos:latest     -- docker images 列表中的 REPOSITORY:TAG

     7. /bin/bash        --表示使用bash

 

四、配置sshd

yum -y install openssh-server

若有遇到问题,请查看docker centos:last 开启sshd 遇到的证书问题

 

五、修改root密码 [如果未使用--privileged,这里的root只是普通用户]

passwd root

 

六、提交当前容器为新的镜像或覆盖原镜像

   1.退出当前容器

exit

   2. 查到被我们修改的容器ID

docker ps -a

   3.提交当前容器为新的镜像或覆盖原镜像

docker commit {容器ID} {镜像名称}

     说明:

     1.{镜像名称}既可以为新的名称也可以直接覆盖原始镜像

     2.docker run 会根据镜像创建一个容器,如果没有手动执行 docker rm {容器ID},该容器将会一直存在,你可以启动、停止、登录容器;命令如下:

       2.1 启动:docker start {容器名称}

       2.2 停止:docker stop {容器名称}

       2.3 强制停止:docker kill {容器ID}

       2.4 登录容器:docker attach {容器名称}   --容器必须启动; 一个容器支持多个attach,这将会出现屏幕共享效果

    3.使用docker commit后,我们刚才配置的带有sshd的容器将生成新镜像或覆盖原始镜像,我们又可以基于它来创建新的容器

 

七、使用Xshell+WinSCP连接容器

   host:127.0.0.1

   port:5001

   User:root

   pwd:******

posted @ 2017-03-22 15:27  b̶i̶n̶g̶.̶  阅读(1981)  评论(0编辑  收藏  举报