设为首页 收藏本站
查看: 717|回复: 0

[经验分享] Docker部署Apache

[复制链接]

尚未签到

发表于 2018-5-26 10:37:17 | 显示全部楼层 |阅读模式
Docker部署Apache-tomcat
  实验环境:
Centos 7
phpStudy(提供wget 下载以下的两个软件包到Centos)
所需软件包:
jdk-8u11-linux-x64.tar.gz
apache-tomcat-7.0.84.tar.gz
提供下载链接:https://pan.baidu.com/s/1miZh9wO 密码:8d5f

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
  我们可开启多个 Docker 容器,而每个 Docker 容器中可运行自己所需的应用程序,Docker 容器之间也是相互隔离的,同样地,都是占用的宿主机的硬件与网络资源。
  一、.配置好yum源
可参考:http://blog.51cto.com/12445563/2065914 配置好后进行以下代码

[root@cany ~]# setenforce 0                                       临时关闭selinux
[root@cany ~]# systemctl stop firewalld.service         关闭firewalld防火墙
[root@cany ~]# yum install docker -y                         安装docker
[root@cany ~]# systemctl start docker.service           启动docker服务
  二、.下载镜像
搜索可用的docker镜像:docker search name
会从官方搜索匹配到的镜像 也可以去配置国内源 下载相对快些

[root@cany ~]# docker pull centos:latest  下载最新Centos镜像
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
af4b0a2388c6: Pull complete
Digest: sha256:2671f7a3eea36ce43609e9fe7435ade83094291055f1c96d9d1d1d7c0b986a5d
[root@cany ~]# docker images                   看本地所有的镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos       latest              ff426288ea90        2 weeks ago         207.2 MB
docker的镜像并不大 这个最新的才207.2MB
  三、.下载两个软件包
先把两个软件包放到phpStudy网站根目录下
DSC0000.jpg


[root@cany ~]# mkdir /root/cany           创建存放目录 等等可以挂载到容器里面
[root@cany ~]# cd /root/cany/               把软件包放到这文件夹里面
[root@cany cany]# wget http://10.2.4.144/apache-tomcat-7.0.84.tar.gz
--2018-01-29 04:47:43--  http://10.2.4.144/apache-tomcat-7.0.84.tar.gz
Connecting to 10.2.4.144:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9032792 (8.6M) [application/x-gzip]
Saving to: ‘apache-tomcat-7.0.84.tar.gz’
100%[==============================================================================================================>] 9,032,792   --.-K/s   in 0.07s   
2018-01-29 04:47:43 (125 MB/s) - ‘apache-tomcat-7.0.84.tar.gz’ saved [9032792/9032792]
[root@cany cany]# wget http://10.2.4.144/jdk-8u11-linux-x64.tar.gz
--2018-01-29 04:47:58--  http://10.2.4.144/jdk-8u11-linux-x64.tar.gz
Connecting to 10.2.4.144:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 159019376 (152M) [application/x-gzip]
Saving to: ‘jdk-8u11-linux-x64.tar.gz’
100%[==============================================================================================================>] 159,019,376 23.2MB/s   in 12s   
2018-01-29 04:48:10 (12.5 MB/s) - ‘jdk-8u11-linux-x64.tar.gz’ saved [159019376/159019376]
  四、.创建容器
用法:docker run <相关参数> <镜像 ID> <初始命令>

                                                                   IMAGE ID
docker run -i -t -v /root/cany/:/mnt/cany/ ff426288ea90 /bin/bash
  相关参数包括:
  -i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
此时使用/bin/bash,表示什么也不做,只需进入命令行即可
  五、.安装服务相关环境和软件
搭建apache-tomcat服务需要安装jdk和tomcat (我选择 /opt/目录作为安装目录)
下面的过程均在容器内部进行:

[root@c6a61597a46d /]# cd /mnt/cany/                                  进入挂载的目录
[root@c6a61597a46d cany]# tar -zxf                                      看到了我们下载的两个软件包
apache-tomcat-7.0.84.tar.gz  jdk-8u11-linux-x64.tar.gz           
[root@c6a61597a46d cany]# tar -zxf apache-tomcat-7.0.84.tar.gz        进行解压
[root@c6a61597a46d cany]# tar -zxf jdk-8u11-linux-x64.tar.gz           
[root@c6a61597a46d cany]# mv apache-tomcat-7.0.84/ /opt/tomcat/   把解压后的文件夹转移到我们选择的安装目录
[root@c6a61597a46d cany]# mv jdk1.8.0_11/ /opt/jdk/  
  设置环境变量
1.编辑.bashrc文件

[root@c6a61597a46d cany]# vi ~/.bashrc
  然后,在该文件末尾添加如下配置:

export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME
DSC0001.jpg


[root@c6a61597a46d cany]# source ~/.bashrc   用source命令让环境变量生效
  2.编写容器启动运行脚本
毕竟容器镜像比较小 原生 缺少很多环境 下面来编写脚本
当启动容器时,运行该脚本,启动 Tomcat  具体步骤如下:

[root@c6a61597a46d cany]# vi /root/cany.sh
#!/bin/bash
source ~/.bashrc                                    必须先加载环境变量
sh /opt/tomcat/bin/catalina.sh run          然后使用 Tomcat 的运行脚本来启动
[root@c6a61597a46d cany]# chmod u+x /root/cany.sh   对当前目录下的cany.sh文件的所有者增加可执行权限
  以上步骤全部完成后,可使用exit命令,退出容器。
  六、创建tomcat镜像
对于刚才的配置我们可以创建一个镜像 方便以后直接利用 或者转移到别的机器上也是可以使用的 具体操作如下:

[root@cany cany]# docker ps              查看正在运行的容器    怎么会没有呢  我们刚才不是已经创建了一个吗?
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@cany cany]# docker ps -a          查看所以容器看看究竟  发现还在
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
c6a61597a46d        ff426288ea90        "/bin/bash"         36 minutes ago      Exited (0) 41 seconds ago                       kickass_hopper
  因为刚才使用exit命令退出的容器,此时容器处于停止状态 所以每次进入容器修改东西后出来一定要记得去开启容器
  记住以上CONTAINER ID(容器 ID),等等我们通过该容器,创建一个可运行tomcat的镜像。
  相关命令如下:

docker stop  <容器名or ID>          停止某个容器
docker start  <容器名or ID>          启动某个容器
docker kill    <容器名or ID>           杀掉某个容器
docker rm    <容器名or ID>           删除某个容器
docker rmi IMAGE                        删除镜像
docker ps -a -q                             查看所有容器ID
docker rm $(docker ps -a -q)        删除所有的容器:
docker attach <容器名or ID>        attach到运行中的容器
  把我们刚才配置好的做一个新的镜像

[root@cany ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
c6a61597a46d        ff426288ea90        "/bin/bash"         58 minutes ago      Exited (0) 5 minutes ago                       kickass_hopper
[root@cany ~]# docker commit c6a61597a46d cany/tomcat:0.1
sha256:7cbbe3742372edc2a19ba37ea5684a573c92d2e08be437a9d6028688371b5152
[root@cany ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
cany/tomcat         0.1                 7cbbe3742372        18 seconds ago      544.9 MB
docker.io/centos    latest              ff426288ea90        2 weeks ago         207.2 MB
  看到了吗? 镜像名为cany/tomcat
  七、启动tomcat镜像容器
与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务

[root@cany ~]# docker run -d -p 80:8080 --name web cany/tomcat:0.1 /root/cany.sh
401ddf6c97128e377df9ae8f3992ef2b065d053475387e1fac6f49e2b7390414
[root@cany ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
401ddf6c9712        cany/tomcat:0.1     "/root/cany.sh"     32 seconds ago      Up 29 seconds       0.0.0.0:80->8080/tcp   web
  -d:表示以“守护模式”执行/root/cany.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 80 端口,这样就向外界暴露了 80 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
--name:表示容器名称,用一个有意义的名称命名即可。
  Docker网桥:通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与端口号
  八、测试

http://10.2.4.88/   这里使用的是宿主机的 IP 地址 容器的8080端口映射到了80端口 因为http默认是80 所以不需要打端口 直接访问
DSC0002.jpg

  怎么是hello cany ?
答:因为我去了/opt/tomcat/webapps/ROOT 目录  删掉了全部文件 创建了index.html 不过你们可以忽略此步 所以我就没写在上面了
  总结:当我开始了解docker的时候就去网上查阅其他大神的文章 发现挺多讲的不是很全  也没有提供相关软件包 综合所查阅到的资料 终于做通了这个实验 并上传了我个人实验的软件包 希望此文章能帮助到刚入门docker的朋友们!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481268-1-1.html 上篇帖子: 第六篇:配置Docker容器加速器 下篇帖子: Docker部署nginx实现负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表