简单的Dockerfile书写(实例!!!)
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,一、Apachemkdir apachecd apachevim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER The porject #镜像操作
千家信息网最后更新 2024年11月18日简单的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安全错误
数据库的锁怎样保障安全
大型系统开发数据库
st200 数据库
美国矿物协会数据库
大数据软件开发薪资
nist数据库下载
软件开发示例4
恋爱记录软件开发
网络安全我为人民知识点
服务器安数据安全
中友通信网络技术
网络安全加固规范
lol各个服务器版本更新速度
东莞服装进销存软件开发
无线ap管理服务器
攀枝花宣传思想网络安全会议
50m独享服务器
网络安全保护费用
台湾硕博士论文加值数据库
攻击阿里云无防护服务器
数据库应用于技术
mediawiki 设置数据库
网络技术个人自评总结
sr158服务器装系统
制造业售后服务管理软件开发
下免费软件开发商怎么赚钱
郑州网络安全教育基地在哪
软件开发项目整合
网络安全意识测评
远程备份其他服务器上数据库
维普数据库收费标准