1.镜像挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
2.tomcat的部署
(1)拉取镜像
docker pull tomcat:7-jre7
(2)创建容器
创建容器 -p表示地址映射
docker run -di --name=mytomcat -p 9000:8080
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
为了方便项目的部署,我们将wepapps目录映射到linux服务器的目录下。
为了方便测试,我们将一个war包放入该虚拟机的/usr/local/tomcat/webapps目录下
然后访问你的虚拟机ip地址:9090/项目名
这里我的虚拟机ip为192.168.142.129,引入的项目为CAS单点登陆的开源项目

3. Nginx部署
(1)拉取镜像
docker pull nginx
(2)创建Nginx容器
docker run -di --name=mynginx -p 80:80 nginx
(3)静态文件拷贝
我们在 创建nginx容器的时候,并没有使用镜像挂载。此时我们想要将我们项目的静态页面放到nginx中让我们访问。
先进入nginx容器中
docker exec -it mynginx /bin/bash
查看nginx的配置文件
cat /etc/nginx/nginx.conf
内容如下:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
进入conf.d文件夹下查看default.conf
cat /etc/nginx/conf.d/default.conf
内容如下:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
可以看到html在/usr/share/nginx/html目录下
我们将准备好的静态文件夹拷贝到该目录下
docker cp html mynginx:/usr/share/nginx/
然后在浏览器上就可以访问了
本文详细介绍如何在Docker中利用镜像挂载实现宿主机与容器间的文件共享,包括解决权限问题的方法。同时,深入讲解Tomcat和Nginx的容器化部署步骤,涵盖镜像拉取、容器创建及静态文件配置等关键环节。
2132





