Docker入门到搭建Apache站点

随着Docker技术的快速发展,无所不涉猎的运维汪也自学了一些入门知识,记录此文档顺便分享给大家。

现在网上关于Docker的资料基于Ubuntu的较多,本文是基于redhat/centos的环境,本文宿主是redhat7.3,docker镜像是centos7.0。

 

一、创建支持SSH服务的CentOS镜像

1、  在宿主redhat7.3上安装docker:

#yum –y install epel-release

#yum –y install docker-io

2、  启动docker服务:

#systemctl start docker.service

3、  查找下载centos的docker镜像

#docker search centos

#docker pull centos   //由于docker默认的镜像中心在国外,故有下载失败的可能,多下载几次。

4、  启动centos的docker容器

#docker run –it –name=centos-sshd centos/bin/bash

5、  升级系统并安装openssh-server:

#yum –y update

#yum –y install openssh-server

6、  编辑sshd的配置文件/etc/ssh/sshd_config,将其中UsePAM参数设置成“no”;

7、  生成RSA密钥对:

#ssh-keygen –t rsa –b 2048 –f/etc/ssh/ssh_host_rsa_key

出现下面的提示时直接回车:

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

8、  同时在宿主机上也生成密钥对,然后再将生成的公钥文件的内容复制到容器的/root/.ssh/authorized_keys文件中,如果此文件不存在,则创建一个。

9、  设置容器root密码:

#echo “root:123456” | chpasswd

10、启动sshd服务并退出容器:

#/usr/sbin/sshd –D

#exit

11、生成支持sshd的新的镜像,先查看刚刚容器的容器ID:

#docker ps –a

查看ContainerID 将刚才容器的ID记下,如下命令提交生成新的镜像:

#docker  commit  623fdsadgadgdsa  sshd-centos

#docker  images   //查看生成的新镜像sshd-centos

12、根据新生成的镜像运行容器:

#docker  run  –p 10022:22  –d  sshd-centos /usr/sbin/sshd  –D

新运行的容器会将22端口映射到宿主机的10022端口上,从宿主机外部就可以通过10022端口访问该容器。

 

二、基于Docker搭建Apache简易站点

1、运行一个容器:

   #docker run –it sshd-centos /bin/bash

2、升级系统并安装httpd软件:

   #yum –y update

   #yum –y install httpd

   #exit

3、查看上述容器的ID,提交生成新的镜像centos-httpd

   #docker ps –a

   #docker commit  2333ddghddsadg  centos-httpd

4、查看本地镜像列表,确保新的镜像centos-httpd已经生成:

   #docker images

5、在宿主机上创建主页文件index.html和docker创建文件Dockerfile:

   #echo “

DockerMysite

”  >  index.html

   #vim Dockerfile

     FROM centos-httpd         //读取centos-httpd镜像

     ADD index.html  /var/www/html/   //将主页文件index.html放到容器的站点目录下

     EXPOSE 80        //开启容器的80端口

     ENTRYPOINT [ “/usr/sbin/httpd” ]     //httpd的可执行文件

 CMD  [ “-D”, “FOREGROUND” ]

基于Dockerfile文件创建站点镜像:

#docker build  -rm  –t mysite  .

 6、创建好镜像后,可通过#dockerimages命令查看:

 7、运行该容器:

#docker  run  -d  -p  32769:80 mysite

-p 参数指定特定端口

 8、可通过客户端浏览器验证:

    http://10.7.13.9:32769

 

删除的docker镜像: #docker rmi$(docker images –f “dangling=true” -q)


你可能感兴趣的:(docker容器)