博文目录
一、编写Dockerfile部署Tomcat服务
二、编写Dockerfile部署Apache服务
1、编写Dockerfile文件
2、docker宿主机或者客户端访问httpd01容器中的apache服务
3、登录httpd01容器,查看访问日志
三、编写Dockerfile部署Nginx服务
1、编写Dockerfile文件
2、使用docker宿主机或者客户端访问nginx01容器中的nginx服务
3、登录nginx01容器,查看访问日志
四、编写Dockerfile部署MySQL服务
[root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--开启路由功能-->[root@centos01 ~]# sysctl -p <!--刷新配置-->net.ipv4.ip_forward = 1[root@centos01 ~]# mkdir tomcat <!--创建tomcat目录--> <!--拷贝tomcat和jdk压缩包到tomcat目录--> [root@centos01 ~]# cp /mnt/apache-tomcat-7.0.54.tar.gz ./tomcat/ [root@centos01 ~]# cp /mnt/jdk-7u65-linux-x64.gz ./tomcat/ <!--解压缩tomcat和jdk(测试用,一会还会将其删除)--> [root@centos01 tomcat]# tar zxvf apache-tomcat-7.0.54.tar.gz [root@centos01 tomcat]# tar zxvf jdk-7u65-linux-x64.gz[root@centos01 tomcat]# vim Dockerfile <!--编写Dockerfile文件--> <!--基础镜像centos6.7系统--> FROM hub.c.163.com/public/centos:6.7-tools<!--作者联系方式--> MAINTAINER 18232013151@163.com <!--解压缩tomcat和解压缩JDK--> ADD apache-tomcat-7.0.54.tar.gz /usr/src/ ADD jdk-7u65-linux-x64.gz /usr/src/ <!--设置环境变量--> ENV JAVA_HOME /usr/src/jdk1.7.0_65ENV PATH $JAVA_HOME/bin/$PATHEXPOSE 8080 <!--监听8080端口--> <!--启动tomcat服务,保持docker容器运行--> ENTRYPOINT /usr/src/apache-tomcat-7.0.54/bin/startup.sh && tailf /usr/src/apache-tomcat-7.0.54/logs/catalina.out [root@centos01 tomcat]# docker images |grep hub<!--验证docker宿主机是否有基础镜像--> hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB[root@centos01 tomcat]# docker build -t tomcat:v1.0 . <!--通过dockerfile生成镜像,镜像的名字是tomcat:v1.0-->Sending build context to Docker daemon 459.7 MBStep 1/8 : FROM hub.c.163.com/public/centos:6.7-tools……………<!--此处省略部分内容-->Removing intermediate container aa619596db96Successfully built 66675674563d[root@centos01 tomcat]# docker images <!--查看docker宿主机是否生成tomcat:v1.0镜像-->REPOSITORY TAG IMAGE ID CREATED SIZEtomcat v1.0 66675674563d About a minute ago 908 MBhub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB[root@centos01 tomcat]# docker run -it -d --name tomcat01 -p 192.168.100.10:8080:8080/tcp tomcat:v1.0 <!--通过tomcat:v1.0镜像运行容器并发布服务,容器名字为tomcat01-->74dd48e73260de092f882ac76e8a052f2fb5469b67e01fc3fcf653e31dd0462d[root@centos01 tomcat]# docker ps <!--查看正在运行的容器-->CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES74dd48e73260 tomcat:v1.0 "/bin/sh -c ‘/usr/..." 21 seconds ago Up 20 seconds 22/tcp, 192.168.100.10:8080->8080/tcp tomcat01
通过客户端或者docker宿主机访问tomcat01容器中的tomcat服务
[root@centos01 ~]# docker images <!--查看docker宿主机镜像-->REPOSITORY TAG IMAGE ID CREATED SIZEhub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB[root@centos01 ~]# mkdir apache <!--创建apache目录-->[root@centos01 ~]# cd apache/[root@centos01 apache]# vim Dockerfile <!--创建Dockerfile-->FROM hub.c.163.com/public/centos:6.7-toolsMAINTAINER lyx.163.comRUN rm -rf /etc/yum.repos.d/CentOS-*RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repoRUN yum clean allRUN yum -y install httpdRUN echo "www.dockerfile.com" > /var/www/html/index.htmlCMD ["httpd","-DFOREGROUND"][root@centos01 apache]# docker build -t httpd:v1.0 . <!--通过dockerfile生成apache镜像-->Sending build context to Docker daemon 2.048 kBStep 1/8 : FROM hub.c.163.com/public/centos:6.7-tools ---> b2ab0ed558bbStep 2/8 : MAINTAINER lyx.163.com……………… <!--此处省略部分内容-->Removing intermediate container cef73e68e7b1Step 8/8 : CMD httpd -DFOREGROUND ---> Running in de7c11e41b1e ---> 33bf9e8f5992Removing intermediate container de7c11e41b1eSuccessfully built 33bf9e8f5992[root@centos01 apache]# docker images <!--查看docker宿主机镜像-->REPOSITORY TAG IMAGE ID CREATED SIZEhttpd v1.0 33bf9e8f5992 About a minute ago 769 MBhub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB[root@centos01 apache]# docker run -it -d --name httpd01 -p 192.168.100.10:80:80/tcp httpd:v1.0 <!--通过httpd镜像运行一个容器,容器名字为httpd01,并发布容器中的apache服务-->33de1fc52130b9109b7746568c85cf1a12d3067baa6b42135cb389040315f20c[root@centos01 apache]# docker ps <!--查看运行的容器-->CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES33de1fc52130 httpd:v1.0 "httpd -DFOREGROUND" 17 seconds ago Up 16 seconds 22/tcp, 192.168.100.10:80->80/tcp httpd01
[root@centos01 apache]# curl http://192.168.100.10 <!--docker宿主机访问httpd01容器中的apache服务-->www.dockerfile.com
[root@centos01 apache]# docker exec -it httpd01 /bin/bash <!--登录httpd01容器-->[root@33de1fc52130 /]# cat /var/log/httpd/access_log <!--查看访问日志-->192.168.100.10 - - [16/May/2020:17:24:30 +0800] "GET / HTTP/1.1" 200 19 "-" "curl/7.29.0"192.168.100.252 - - [16/May/2020:17:24:51 +0800] "GET / HTTP/1.1" 200 19 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0
[root@centos01 ~]# mkdir nginx <!--创建nginx目录-->[root@centos01 ~]# cp /mnt/nginx-1.6.0.tar.gz ./nginx/ <!--复制nginx压缩包到nginx目录-->[root@centos01 ~]# cd nginx/[root@centos01 nginx]# vim Dockerfile <!--创建Dockerfile-->FROM hub.c.163.com/public/centos:6.7-toolsMAINTAINER lyx.163.comRUN rm -rf /etc/yum.repos.d/CentOS-*RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repoRUN yum clean allRUN yum -y install epel-release pcre-devel zlib-devel gccADD nginx-1.6.0.tar.gz /usr/src/RUN useradd -M -s /sbin/nologin nginxWORKDIR /usr/src/nginx-1.6.0RUN ./configure --prefix=/usr/local/nginx --user=nginx --with-http_stub_status_module && make && make installRUN echo "www.dockerfile.nginx.com" > /usr/local/nginx/html/index.htmlRUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.confENV PATH /usr/local/nginx/sbin:$PATHEXPOSE 80CMD ["nginx"][root@centos01 nginx]# docker build -t nginx:v1.0 . <!--使用dockerfile生成nginx镜像-->Sending build context to Docker daemon 806.4 kBStep 1/15 : FROM hub.c.163.com/public/centos:6.7-tools ---> b2ab0ed558bbStep 2/15 : MAINTAINER lyx.163.com……………… <!--此处省略部分内容-->Removing intermediate container f4c88ae2748aStep 15/15 : CMD nginx ---> Running in a8a00e8ae169 ---> 03f7a7450ab9Removing intermediate container a8a00e8ae169Successfully built 03f7a7450ab9[root@centos01 nginx]# docker images |grep nginx <!--docker宿主机查看nginx镜像-->nginx v1.0 03f7a7450ab9 About a minute ago 929 MB[root@centos01 nginx]# docker run -it -d --name nginx01 -p 192.168.100.10:8080:80/tcp nginx:v1.0 <!--基于nginx镜像运行一个容器,并发布容器中的nginx服务-->8f249f41662f991cc8b4b457e80a90404a0d5140994aeb10cd62d37a5ab10a21[root@centos01 nginx]# docker ps <!--查看运行的容器-->CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8f249f41662f nginx:v1.0 "nginx" 14 seconds ago Up 13 seconds 22/tcp, 192.168.100.10:8080->80/tcp nginx0133de1fc52130 httpd:v1.0 "httpd -DFOREGROUND" 10 minutes ago Up 10 minutes 22/tcp, 192.168.100.10:80->80/tcp httpd01
[root@centos01 nginx]# curl http://192.168.100.10:8080 <!--访问Nginx01容器中的nginx服务-->www.dockerfile.nginx.com
[root@centos01 nginx]# docker exec -it nginx01 /bin/bash <!--登录Nginx01容器-->[root@8f249f41662f nginx-1.6.0]# cat /usr/local/nginx/logs/access.log <!--查看访问日志-->192.168.100.10 - - [16/May/2020:09:34:33 +0000] "GET / HTTP/1.1" 200 25 "-" "curl/7.29.0"192.168.100.252 - - [16/May/2020:09:35:21 +0000] "GET / HTTP/1.1" 200 25 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0"
[root@centos01 ~]# mkdir mysql <!--创建mysql目录-->[root@centos01 ~]# cp mysql-5.5.22.tar.gz cmake-2.8.6.tar.gz ./mysql <!--复制mysql和cmake压缩包到mysql目录-->[root@centos01 ~]# cd mysql/[root@centos01 mysql]# vim Dockerfile <!--创建Dockerfile-->FROM hub.c.163.com/public/centos:6.7-toolsMAINTAINER lyx.163.comRUN rm -rf /etc/yum.repos.d/CentOS-*RUN wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repoRUN yum clean allRUN yum -y install ncurses-devel libstdc++-devel gcc-c++ RUN groupadd mysqlRUN useradd -M -s /sbin/nologin -g mysql mysqlADD cmake-2.8.6.tar.gz /usr/srcADD mysql-5.5.22.tar.gz /usr/srcWORKDIR /usr/src/cmake-2.8.6RUN ./configure && gmake && gmake install WORKDIR /usr/src/mysql-5.5.22RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install RUN cp support-files/my-medium.cnf /etc/my.cnfRUN chown -R mysql:mysql /usr/local/mysql/RUN cp support-files/mysql.server /etc/init.d/mysqldRUN chmod +x /etc/init.d/mysqldRUN chkconfig --add mysqldRUN chkconfig --level 35 mysqld onRUN ln -s /usr/local/mysql/bin/* /usr/local/bin/RUN /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ADD mysqld.sh /usr/local/mysqlRUN chmod +x /usr/local/mysql/mysqld.shEXPOSE 3306CMD "/usr/local/mysql/mysqld.sh" && tail -f /dev/null[root@centos01 mysql]# vim mysqld.sh <!--创建启动mysql脚本-->#!/bin/bash/etc/init.d/mysqld start <!--启动mysql命令-->[root@centos01 mysql]# docker build -t mysql:v1.0 . <!--通过dockerfile生成mysql镜像-->……………… <!--此处省略部分内容-->Removing intermediate container 1362670945c1Step 26/26 : CMD "/usr/local/mysql/mysqld.sh" && tail -f /dev/null ---> Running in 2a9bcf3ed523 ---> 25e2ae633bcfRemoving intermediate container 2a9bcf3ed523Successfully built 25e2ae633bcf[root@centos01 mysql]# docker images |grep mysql <!--docker宿主机查看mysql镜像-->mysql v1.0 25e2ae633bcf About a minute ago 2.41 GB[root@centos01 mysql]# docker run -it -d --name mysql01 -p 192.168.100.10:3306:3306/tcp mysql:v1.0 <!--基于mysql镜像运行一个容器,并发布容器中的mysql服务-->b4c8d6b4ca204420706934777a178a3f1bb4e067e93edf388609dc95140b0b31[root@centos01 mysql]# docker ps <!--查看运行的容器-->CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb4c8d6b4ca20 mysql:v1.0 "/bin/sh -c ‘\"/usr..." 8 seconds ago Up 7 seconds 22/tcp, 192.168.100.10:3306->3306/tcp mysql018f249f41662f nginx:v1.0 "nginx" 15 minutes ago Up 15 minutes 22/tcp, 192.168.100.10:8080->80/tcp nginx0133de1fc52130 httpd:v1.0 "httpd -DFOREGROUND" 25 minutes ago Up 25 minutes 22/tcp, 192.168.100.10:80->80/tcp httpd01[root@centos01 mysql]# docker exec -it mysql01 /bin/bash <!--登录刚刚创建的容器-->[root@b4c8d6b4ca20 mysql-5.5.22]# mysqladmin -uroot password "pwd@123" <!--初始化mysql登录密码-->mysql> grant all on *.* to ‘tom‘@‘192.168.100.%‘ identified by ‘pwd@123‘; <!--在容器中登录mysql,授权tom拥有完全控制权限-->Query OK, 0 rows affected (0.00 sec)mysql> create database liyanxin; <!--创建一个数据库-->Query OK, 1 row affected (0.00 sec)mysql> show databases; <!--查看所有数据库-->+--------------------+| Database |+--------------------+| information_schema || liyanxin || mysql || performance_schema || test |+--------------------+5 rows in set (0.00 sec)[root@centos01 ~]# yum -y install mysql <!--安装mysql客户端-->[root@centos01 ~]# mysql -utom -ppwd@123 -h 192.168.100.10 -P3306 <!--docker宿主机访问mysql01容器中的mysql数据库-->MySQL [(none)]> show databases; <!--查看所有数据库-->+--------------------+ | Database |+--------------------+| information_schema || liyanxin || mysql || performance_schema || test |+--------------------+
————————————本文到此结束,感谢观看——————————————