使用Dockerfile构建镜像
一、构建SSH镜像创建镜像目录方便管理mkdir /opt/sshdcd /opt/sshd
创建编写dockerfile文件vim Dockerfile
二、构建Systemctl镜像创建镜像目录方便管理mkdir /opt/systemctlcd /opt/systemctl
创建编写dockerfile文件vim Dockerfile
FROM sshd:centosMAINTAINER this is systemctl image ENV container docker#除了systemd-tmpfiles-setup.service,删除其它所有文件RUN (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 systemd:centos .
#启动容器,并挂载宿主机目录挂载到容器中,和进行初始化docker run --privileged -it -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemd:centos /sbin/init --privileged:使container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
三、构建tomcat镜像创建镜像目录方便管理mkdir /opt/tomcat
创建编写dockerfile文件vim Dockerfile
1、构建Nginx镜像(容器IP 为 172.18.0.10)上传 nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar.gz 到 /opt/nginx/ 目录中mkdir -p /opt/nginx/htmltar zxvf wordpress-4.9.4-zh_CN.tar.gz -C /opt/nginx/html
vim Dockerfile
FROM centos:7MAINTAINER this is nginx image RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ makeRUN useradd -M -s /sbin/nologin nginxADD nginx-1.12.0.tar.gz /usr/local/src/WORKDIR /usr/local/src/nginx-1.12.0RUN ./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-&& make && make installENV PATH /usr/local/nginx/sbin:$PATHADD nginx.conf /usr/local/nginx/conf/ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/RUN chmod 777 -R /usr/local/nginx/html/EXPOSE 80EXPOSE 443ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
2、构建mysql(172.18.0.20)mkdir /opt/mysqldcd /opt/mysqld
上传 mysql-boost-5.7.20.tar.gz 到 /opt/mysqld 目录中
vim Dockerfile
FROM centos:7
MAINTAINER this is mysql image RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake makeRUN useradd -M -s /sbin/nologin mysqlADD mysql-boost-5.7.20.tar.gz /usr/local/src/WORKDIR /usr/local/src/mysql-5.7.20/RUN cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.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 -j4 && make installRUN chown -R mysql:mysql /usr/local/mysql/ADD my.cnf /etc/my.cnfRUN 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 systemctl enable mysqldVOLUME [ "/usr/local/mysql" ]CMD /usr/sbin/init
vim my.cnf[client]port = 3306socket = /usr/local/mysql/mysql.sock
[mysql]port = 3306socket = /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 = 1
sql_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_QUOTES
3、部署php(容器IP 为 172.18.0.30)mkdir /opt/phpcd /opt/php
上传 php-7.1.10.tar.bz2 到 /opt/php 目录中
vim Dockerfile
FROM centos:7MAINTAINER this is php image RUN yum -y install gd \libjpeg libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel \gcc gcc-c++ make pcre-develRUN useradd -M -s /sbin/nologin nginxADD php-7.1.10.tar.bz2 /usr/local/src/WORKDIR /usr/local/src/php-7.1.10RUN ./configure \--prefix=/usr/local/php \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-fpm \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zip && make && make installENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATHADD php.ini /usr/local/php/lib/ADD php-fpm.conf /usr/local/php/etc/ADD conf /usr/local/php/etc/php-fpm.d/EXPOSE 9000ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]
docker build -t php:lnmp .docker run --name=php -d -p 9000:9000 --volumes-from mysql --volumes-from nginx --net mynetwork --ip 172.18.0.30 php:lnmp
docker exec -it mysql /bin/bash
测试结果:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~