docker Dockerfile搭建centos nginx环境

首先编写Dockerfile文件

 

FROM centos

# 维护者
MAINTAINER xxx

#解决centos8 yum失败
RUN sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
#安装nginx
RUN yum install -y nginx
# 挂载卷,测试用例(这里的挂载卷,不可以指定本机的目录,不够灵活,一般会在 启动容器时通过 -v 参数指定挂载卷,或在docker-compose.yaml文件中指定,都可以指定本地目录)
VOLUME ["/data"]
#nginx简单配置
RUN echo " \
user nginx; \
worker_processes auto; \
error_log /var/log/nginx/error.log; \
pid /run/nginx.pid; \
include /usr/share/nginx/modules/*.conf; \
events { \
    worker_connections 1024; \
} \
http { \
    sendfile            on; \
    tcp_nopush          on; \
    tcp_nodelay         on; \
    keepalive_timeout   65; \
    types_hash_max_size 2048; \
    include             /etc/nginx/mime.types; \
    default_type        application/octet-stream; \
    include /etc/nginx/conf.d/*.conf; \
    include /data/*.conf; \
} " > /etc/nginx/nginx.conf

WORKDIR /hello
RUN cd /hello && echo "hello docker" > index.html
RUN echo " \
server { \
    listen 80; \
    server_name _; \
    location / { \
       root /hello; \
    } \
} " > /etc/nginx/conf.d/hello.conf

EXPOSE 80

docker build 命令用于使用 Dockerfile 创建镜像

语法

docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
  • --build-arg=[] :设置镜像创建时的变量;

  • --cpu-shares :设置 cpu 使用权重;

  • --cpu-period :限制 CPU CFS周期;

  • --cpu-quota :限制 CPU CFS配额;

  • --cpuset-cpus :指定使用的CPU id;

  • --cpuset-mems :指定使用的内存 id;

  • --disable-content-trust :忽略校验,默认开启;

  • -f :指定要使用的Dockerfile路径;

  • --force-rm :设置镜像过程中删除中间容器;

  • --isolation :使用容器隔离技术;

  • --label=[] :设置镜像使用的元数据;

  • -m :设置内存最大值;

  • --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

  • --no-cache :创建镜像的过程不使用缓存;

  • --pull :尝试去更新镜像的新版本;

  • --quiet, -q :安静模式,成功后只输出镜像 ID;

  • --rm :设置镜像成功后删除中间容器;

  • --shm-size :设置/dev/shm的大小,默认值是64M;

  • --ulimit :Ulimit配置。

  • --squash :将 Dockerfile 中所有的操作压缩为一层。

  • --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  • --network: 默认 default。在构建期间设置RUN指令的网络模式

#注意需要进入Dockerfile所在目录,且Dockerfile文件首字母需要大写
docker build -t centos_nginx:v1 .

#如果不进入Dockerfile所在目录,则需要指定目录
docker build -t centos_nginx:v1 /root/Dockerfile

执行成功会显示生成成功

使用docker ps -l 查看容器

 启动容器

#将容器的 80 端口映射到主机的 80 端口
docker run -d -p80:80 centos_nginx:v1  /usr/sbin/init

进入容器 docker exec

#语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

#OPTIONS说明:

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

docker exec -ti 21f595de4ab7 bash

 启动nginx

访问127.0.0.1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值