#仅限bash程序,多个命令通过&&连接
RUN cd /etc/yum.repos.d &&mkdir bak &&mv *.repo bak/ &&echo'[local]\nname=linuxbase\nbaseurl=ftp://192.168.88.101/centos6new\ngpgcheck=0\nenabled=1\n'>/etc/yum.repos.d/local.repo && yum ma
kecache fast && yum install -y openssh-server
#创建目录存放dockerfile[root@docker ~]# mkdir -p /opt/dockerfile/centos6.9#创建dockerfile文件[root@docker centos6.9]# vim dockerfile# CentOS6.10-SSHDv1.0
FROM centos@f1af727749c4
RUN cd /etc/yum.repos.d &&mkdir bak &&mv *.repo bak/ &&echo -e "[local]\nname=linuxbase\nbaseurl=ftp://192.168.88.101/centos6new\ngpgcheck=0\nenabled=1\n">/etc/yum.repos.d/local.repo && yum ma
kecache fast && yum install -y openssh-server
RUN echo"123456"|passwd --stdin root
RUN /etc/init.d/sshd start && /etc/init.d/sshd stop
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
通过dockerfile生成镜像
[root@docker centos6.9]# docker image build -t "tye/centos6.9-sshd:v1.0" ./[root@docker centos6.9]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
tye/centos6.9-sshd v1.0 51762c7dec10 About a minute ago 332MB
centos 6.10 f1af727749c4 4 weeks ago 194MB
centos 7 eeb6ee3f44bd 4 weeks ago 204MB
centos latest 5d0da3dc9764 4 weeks ago 231MB
nginx 1.14 295c7be07902 2 years ago 109MB
ubuntu 15.10 9b9cb95443b5 5 years ago 137MB
#可以通过--rm参数实现容器关闭后自动销毁[root@docker centos6.9]# docker container run -it --rm b3072f59a537 /bin/bash#删除镜像时,使用以下命令可以删除掉通过dockerfile生成的中间镜像(前提是先删除正式镜像后,才能删除中间镜像,否则会报错)[root@docker ~]# docker image rmi `docker image ls -a | grep 'none' | awk '{print $3}'`
通过新创建的镜像启动容器
[root@docker centos6.9]# docker run -d -p 222:22 51762c7dec10
d74c1bcd77410c9812e6dbf148c4a55dcf8bd083e3787ee098aa0485344f3c73
[root@docker centos6.9]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d74c1bcd7741 51762c7dec10 "/usr/sbin/sshd -D"3 seconds ago Up 3 seconds 0.0.0.0:222->22/tcp, :::222->22/tcp distracted_jepsen
查看连接情况
#通过ssh连接宿主机的222端口,可以连接表示容器的sshd服务正常[C:\~]$ ssh192.168.88.101 222
Connecting to 192.168.88.101:222...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
WARNING! The remote SSH server rejected X11 forwarding request.
[root@d74c1bcd7741 ~]#
dockerfile基于centos7.9构建nginx(使用阿里yum源)
#centos_nginx#使用Centos7基础镜像
FROM centos:7
#备份原有yum源,配置阿里yum源
ENV YUMPROFILE=/etc/yum.repos.d
RUN yum install -y wget&&cd${YUMPROFILE}&&mkdir bak &&mv *.repo bak/ &&wget -O ${YUMPROFILE}/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum install -y epel-release && yum makecache fast && yum install -y nginx
#暴露80端口
EXPOSE 80#启动容器时启动nginx
CMD ["/usr/sbin/nginx","-g","daemon off;"]
基于busybox镜像构建简单的httpd服务
FROM busybox:latest
LABEL maintainer="Tye <tye@admin.com>"app="httpd"
ENV WEB_DOC_ROOT=/data/web/html
RUN mkdir -p ${WEB_DOC_ROOT}&&\echo"<h1>BusyBox httpd Server--Tye</h1>">${WEB_DOC_ROOT}/index.html
#此处命令使用bash子进程方式启动
CMD /bin/httpd -f -h ${WEB_DOC_ROOT}
dockerfile构建lamp
#dockerfile---lamp# centos6.10_sshd_LAMP#基础镜像
FROM centos:6.10
#配置本地yum源
RUN cd /etc/yum.repos.d &&mkdir bak &&mv *.repo bak/ &&echo -e "[local]\nname=linuxbase\nbaseurl=ftp://192.168.88.101/centos6new\ngpgcheck=0\nenabled=1\n">/etc/yum.repos.d/local.repo && yum makecache fast && yum install -y openssh-server httpd mysql mysql-server php php-mysql
#启动sshd服务,并创建root密码
RUN /etc/init.d/sshd start && /etc/init.d/sshd stop &&echo'123456'|passwd --stdin root
#初使化mysql,并创建授权用户和discuz数据库
RUN /etc/init.d/mysqld start && mysql -e "grant all on *.* to root@'%' identified by '123456';"&& mysql -e "grant all on *.* to discuz@'%' identified by '123456';"&& mysql -e "create database discuz charset utf8;"
RUN /etc/init.d/httpd start
#拷贝php测试文件至httpd网站目录下
COPY index.php /var/www/html/
#拷贝discuz压缩文件至httpd网站目录下并解压
ADD bbs.tar /var/www/html/
#拷贝启动脚本至一个目录,为后面CMD启动做准备
COPY init.sh /var/www/html/
#暴露sshd,mysqld,httpd端口
EXPOSE 22
EXPOSE 3306
EXPOSE 80
CMD ["/bin/bash","/var/www/html/init.sh"]#init.sh内容如下#!/bin/bash
/etc/init.d/mysqld start
/etc/init.d/httpd start
/usr/sbin/sshd -D