简单的Dockerfile书写(实例!!!)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、Apachemkdir apachecd apachevim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER The porject #镜像操作
千家信息网最后更新 2026年11月01日简单的Dockerfile书写(实例!!!)
一、Apache
mkdir apachecd apachevim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER The porject #镜像操作指令安装apache软件RUN yum -y updateRUN yum -y install httpd#开启80端口EXPOSE 80 #复制网站首页文件ADD index.html /var/www/html/index.html#将执行脚本复制到镜像中ADD run.sh /run.shRUN chmod 755 /run.sh#启动容器时执行脚本CMD ["/run.sh"]vim run.sh#!/bin/bashrm -rf /run/httpd/*exec /usr/sbin/apachectl -D FOREGROUNDecho "web test" > index.html#生成镜像docker build -t httpd:centos .#新镜像运行容器docker run -d -p 1216:80 httpd:centos 二、Mysql 5.7.20
mount.cifs //192.168.142.1/LNMP /mntcd /mntcp mysql-boost-5.7.20.tar.gz /optcd /optmkdir mysqlmv mysql-boost-5.7.20.tar.gz /opt/mysqlcd mysql/vim my.cnf[client]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket = /usr/local/mysql/mysql.sockserver-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESvim DockerfileFROM centos:7RUN yum -y install \ncurses \ncurses-devel \bison \cmake \make \gcc \gcc-c++RUN useradd -s /sbin/nologin mysqlADD mysql-boost-5.7.20.tar.gz /usr/local/srcWORKDIR /usr/local/src/mysql-5.7.20/RUN cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysq1/mysq1.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=boost \-DWITH_SYSTEMD=1 && make && make installRUN chown -R mysql:mysql /usr/local/mysql/RUN rm -rf /etc/my.cnfADD my.cnf /etcRUN chown mysql:mysql /etc/my.cnfENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATHWORKDIR /usr/local/mysql/RUN bin/mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/dataRUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/ system/EXPOSE 3306RUN echo -e "#!/bin/sh \nsystemctl enable mysqld" > /run.shRUN chmod 755 /run.shRUN sh /run.shCMD ["init"]docker build -t centos:mysql .docker run --name=mysql_server -d -P --privileged centos:mysql#进容器给权限docker exec -it 1fbcbbfec033 /bin/bashgrant all privileges on *.* to 'root'@'%' identified by 'abc123';grant all privileges on *.* to 'root'@'localhost' identified by 'abc123';#宿主系统安装mairdb客户端连接mysql容器mysql -h 192.168.142.128 -u root -P 32770 -pabc23三、Tomcat
mount.cifs //192.168.142.1/tomcat /mntcd /mntcp jdk-8u91-linux-x64.tar.gz /optcp apache-tomcat-8.5.16.tar.gz /optcd /optmkdir /tomcat#拷贝jdk-8u91-linux-x64.tar.gz#apache-tomcat-8.5.16.tar.gz到/opt/tomcat下mv apache-tomcat-8.5.16.tar.gz /opt/tomcat/mv jdk-8u91-linux-x64.tar.gz /opt/tomcat/cd /opt/tomcatvim DockerfileFROM centos:7MAINTAINER this is tomcat image ADD jdk-8u91-linux-x64.tar.gz /rootRUN mv /root/jdk1.8.0_91/ /usr/local/jdk1.8ENV JAVA_HOME=/usr/local/jdk1.8ENV CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarENV PATH=$JAVA_HOME/bin:$PATHADD apache-tomcat-8.5.16.tar.gz /rootRUN mv /root/apache-tomcat-8.5.16/ /usr/local/tomcatRUN ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/;ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/EXPOSE 8080ENTRYPOINT /usr/local/tomcat/bin/startup.sh && /bin/bash && tail -f /usr/local/tomcat/logs/catalina.outdocker build -t tomcat:centos .docker run -d --name tomcat01 -p 1216:8080 -it tomcat:centos 四、Ngnix1.9.7
mkdir nginxcd nginxvim Dockerfile #基于基础镜像FROM centos:7#用户信息MAINTAINER The is nginx #添加环境包RUN yum install -y proc-devel gcc gcc-c++ zlib zlib-devel make openssl-devel wget#下载nginx软件包RUN wget http://nginx.org/download/nginx-1.9.7.tar.gzRUN tar zxvf nginx-1.9.7.tar.gz#指定工作目录WORKDIR nginx-1.9.7/RUN ./configure --prefix=/usr/local/nginx && make && make install#指定http和https端口EXPOSE 80EXPOSE 443#关闭守护进程RUN echo "daemon off;" >>/usr/local/nginx/conf/nginx.confWORKDIR /root/nginx#添加宿主机中run.sh到容器中ADD run.sh /run.shRUN chmod 755 /run.shCMD ["/run.sh"]vim run.sh#!/bin/bash/usr/local/nginx/sbin/nginxdocker build -t nginx:new .docker run -d -P nginx:new 五、ssh
mkdir sshdcd sshdvim DockerfileFROM centosMAINTAINER The CentOS Project RUN yum -y updateRUN yum -y install openssh* net-tools lsof telnet passwdRUN echo '123456' | passwd --stdin rootRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_configRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN sed -i '/^session\s\+repuired\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshdRUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.sshEXPOSE 22CMD ["/usr/sbin/sshd","-D"]#生成镜像docker build -t sshd:new .#启动容器并修改root密码docker run -d -P sshd:newssh localhost -p 32770 六、systemctl
mkdir systemctlcd systemctlvim DockerfileFROM sshd:newENV container dockerRUN (cd /lib/ systemd/system/sysinit.target.wants/; for i in*; do [$i==\systemd-tmpfiles-setup.service ] || rm -f $i; done); \rm -f /lib/systemd/system/multi-user.target.wants/*; \rm -f /etc/systemd/system/*.wants/*; \rm -f /lib/systemd/system/local-fs.target.wants/*; \rm -f /lib/systemd/system/sockets.target.wants/*udev*; \rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \rm -f /lib/systemd/system/basic.target.wants/*; \rm -f /lib/systemd/system/anaconda.target.wants/*;VOLUME [ "/sys/fs/cgroup" ]CMD [ "/usr/sbin/init" ]#创建容器docker build -t local/c7-systemd:latest .#privateged container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。docker run --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro local/c7-systemd:latest /sbin/init#进入容器docker exec -it 容器ID bashsystemctl status sshd七、删除冗余镜像
#!/bin/bashdocker ps -a | grep "Exited" | awk '{print $1 }' | xargs docker stopdocker ps -a | grep "Exited" | awk '{print $1 }' | xargs docker rmdocker images | grep none | awk '{print $3 }' | xargs docker rmi
容器
镜像
权限
用户
信息
基础
宿主
端口
脚本
软件
生成
普通
冗余
只是
客户
客户端
宿主机
密码
拷贝
指令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
没上市的科技互联网公司
科技与互联网发展
华宇互联网科技
九亚互联网科技
汇久创客互联网科技
顺网科技2021年互联网排名
新华互联网科技2019
互联网科技热点资讯
栖莱科技互联网股份有限公司
受益于互联网科技的高速发展
互联网金融中的现代科技
河南猎农互联网科技有限公司
移动互联网科技公司
开一家科技互联网公司需要多少钱
云南省自由互联网科技有限公司
工业互联网科技创业
杭州科技互联网公司有哪些
重庆科技产业互联网有哪些
互联网科技自媒体灵感
银川新华互联网科技学校招聘
科技互联网项目
科技与互联网
互联网科技有限公司经营范围
中国的互联网科技企业的崛起
厦门比较好的科技互联网公司
互联网数据科技专业
伊宁互联网科技做什么的
中国新注册互联网科技
湖北辰鑫科技互联网
前海云享互联网科技