dockerfile构建nginx镜像 run.sh
时间: 2023-10-17 11:15:05 浏览: 85
以下是一个示例Dockerfile和run.sh文件,用于构建和运行基于Nginx的Docker镜像:
Dockerfile:
```
# 基础镜像为官方Nginx镜像
FROM nginx
# 将当前目录下的nginx.conf文件复制到容器中的/etc/nginx/conf.d/目录下
COPY nginx.conf /etc/nginx/conf.d/
# 暴露80端口
EXPOSE 80
# 设置容器启动时执行的命令
CMD ["nginx", "-g", "daemon off;"]
```
run.sh:
```
#!/bin/bash
docker build -t my-nginx-image .
docker run -d -p 80:80 my-nginx-image
```
在当前目录下创建一个名为nginx.conf的文件,内容如下:
```
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
```
运行run.sh脚本即可构建镜像并启动容器,访问http://localhost即可查看Nginx欢迎页面。
相关问题
dockerfile在centos构建nginx
Dockerfile是一个文本文件,用于描述如何从基础镜像创建一个新的Docker容器,它类似于一个自述式脚本,告诉Docker引擎该怎么做才能配置好一个完整的应用程序环境。在CentOS上构建Nginx Docker镜像,你可以按照以下步骤操作:
1. 创建一个新的Dockerfile,通常放在项目的根目录下,内容如下:
```dockerfile
# 使用官方的CentOS镜像作为基础镜像
FROM centos:latest
# 设置 maintainer 和更新yum源
MAINTAINER Your Name <your.email@example.com>
RUN yum -y update && \
yum install -y epel-release nginx
# 移除不必要的安装包以减小镜像大小
RUN yum clean all
# 安装配置 Nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
# 设置启动命令为启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]
# 暴露默认端口80
EXPOSE 80
```
这里的`nginx.conf`和`default.conf`需要是你自定义的Nginx配置文件。
2. 在Dockerfile所在的目录,运行以下命令来创建镜像:
```sh
docker build -t your-nginx-image-name .
```
这里`your-nginx-image-name`替换成你自己想要的镜像名称。
3. 镜像构建完成后,你可以通过运行容器并指定刚才创建的镜像来运行Nginx:
```sh
docker run -d -p 80:80 your-nginx-image-name
```
这将启动一个新容器,监听主机的80端口,并映射到容器内的80端口。
logstash dockerfile
以下是一个创建Logstash Dockerfile的示例:
FROM centos:latest
MAINTAINER k@kgc.cn
RUN yum -y install java-1.8.0-openjdk vim telnet lsof
ADD logstash-6.1.0.tar.gz /usr/local
RUN cd /usr/local/logstash-6.1.0
ADD run.sh /run.sh
RUN chmod 755 /*.sh
EXPOSE 5044
CMD ["/run.sh"]
这个Dockerfile首先继承了centos:latest作为基础镜像,并安装了java、vim、telnet和lsof等工具。
然后将logstash-6.1.0.tar.gz解压缩至/usr/local目录下,并进入/usr/local/logstash-6.1.0目录。
接着添加了run.sh脚本,并给予可执行权限。
最后暴露5044端口,并使用/run.sh作为容器启动时的命令。
在run.sh脚本中,执行了/usr/local/logstash-6.1.0/bin/logstash命令,并指定了配置文件/opt/logstash/conf/nginx-log.conf。
这样就创建了一个Logstash的Docker镜像,可以使用该镜像来运行Logstash容器。