27-案列1:构建CentOS+SSH镜像

1.创建dockerfile目录结构

[root@docker01 ~]# mkdir /data/dockerfile -p
[root@docker01 ~]# cd /data/dockerfile/
[root@docker01 dockerfile]# mkdir system runtime app
[root@docker01 dockerfile]# tree
.
├── app
├── runtime
└── system

3 directories, 0 files

2.创建centos镜像目录,并编写centos的Dockerfile文件

[root@docker01 dockerfile]# cd system/
[root@docker01 system]# mkdir centos
[root@docker01 system]# cd centos/
[root@docker01 centos]# vim Dockerfile

# Base Images
FROM centos

# Maintainer
MAINTAINER xiao@qq.com

# Run
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y wget sudo git tree net-tools && yum clean all

# 构建镜像
[root@docker01 centos]# docker build -t system/centos:v1 .

 3.创建centos-ssh的镜像

[root@docker01 centos]# cd ..
[root@docker01 system]# mkdir centos-ssh
[root@docker01 system]# cd centos-ssh/
[root@docker01 centos-ssh]# cp ../centos/Dockerfile .
[root@docker01 centos-ssh]# vim Dockerfile 

# Base Images
FROM centos

# Maintainer
MAINTAINER xiao@qq.com

# Run
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install wget sudo git tree net-tools openssh-clients openssh-server openssl-devel -y && yum clean all
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -A -t dsa -f /etc/ssh/ssh_host_dsa_key

# Set root passwd
RUN echo "root:123.com" | chpasswd

 4.执行构建centos-ssh镜像

root@docker01 centos-ssh]# docker build -t system/centos:v2 .
[root@docker01 centos-ssh]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
system/centos       v2                  c2e7da62bc5f        19 seconds ago      303MB
system/centos       v1                  716f4a675d71        12 minutes ago      298MB
nginx               latest              3c5a05123222        8 days ago          109MB
centos              latest              49f7960eb7e4        5 weeks ago         200MB

 5.启动centos-ssh镜像

[root@docker01 centos-ssh]# docker run -d --name centos-ssh -p 8022:22 system/centos:v2 /usr/sbin/sshd -D
ff769b402f81cbb036524a9418840f89afabbdaf546db1ec6a6c3325fcc0fbfc
[root@docker01 centos-ssh]# docker ps -l
CONTAINER ID        IMAGE               COMMAND               CREATED              STATUS              PORTS                  NAMES
ff769b402f81        system/centos:v2    "/usr/sbin/sshd -D"   About a minute ago   Up About a minute   0.0.0.0:8022->22/tcp   centos-ssh
[root@docker01 centos-ssh]# docker port ff769b402f81
22/tcp -> 0.0.0.0:8022
[root@docker01 centos-ssh]# 

 6.通过ssh登录centos-ssh系统

[root@docker01 centos-ssh]# ssh -p 8022 root@192.168.1.23
The authenticity of host '[192.168.1.23]:8022 ([192.168.1.23]:8022)' can't be established.
ECDSA key fingerprint is 43:fc:0e:f2:9b:8e:38:49:7c:20:b8:e4:d0:8e:0a:f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.1.23]:8022' (ECDSA) to the list of known hosts.
root@192.168.1.23's password: 
[root@ff769b402f81 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2 112816  4272 ?        Ss   06:56   0:00 /usr/sbin/sshd -D
root          5  0.8  0.3 155236  6016 ?        Ss   06:58   0:00 sshd: root@pts/0
root          7  0.0  0.1  15256  1996 pts/0    Ss   06:58   0:00 -bash
root         20  0.0  0.0  55144  1844 pts/0    R+   06:58   0:00 ps aux

 

posted @ 2018-07-15 15:10  sunmmi  阅读(201)  评论(0)    收藏  举报