记录:docker 安装 nginx

该博客详细介绍了如何在Ubuntu Server 20.04上通过Docker安装和配置Nginx,包括拉取镜像、创建挂载目录、启动容器以及使用shell脚本自动化整个过程。通过shell脚本,用户可以自定义容器名称,并自动处理nginx.conf文件的复制,确保容器正常运行。
摘要由CSDN通过智能技术生成

软硬件环境

云服务器,
Ubuntu Server 20.04 LTS 64bit,docker version 20.10.7

安装步骤

  1. 拉取镜像
    docker pull nginx
    
  2. 启动容器
    1. ~目录下新建 nginx 文件夹,方便管理。

      mkdir nginx
      cd nginx
      
    2. 因为docker挂载文件时需要宿主机已有同名文件。所以先启动一个 test 容器,将 nginx.conf 文件复制到宿主机。

      docker run --name test -d nginx  
      docker cp test:/etc/nginx/nginx.conf etc/nginx
      
    3. 然后启动容器。

      docker run --name nginx \
      -p 18080:80 --privileged=true \
      -v $PWD/etc/nginx/nginx.conf:/etc/nginx/nginx.conf \
      -v $PWD/etc/nginx/conf.d:/etc/nginx/conf.d \
      -v $PWD/usr/share/nginx/html:/usr/share/nginx/html \
      -v $PWD/var/log/nginx:/var/log/nginx/ \
      -d nginx
      # 18080 为宿主机端口,根据需要设置 
      # --privileged=true 赋予权限
      # $PWD 指主机当前目录--这里指的是~/nginx,根据需要设置。主机目录:容器目录
      

此时打开 18080 端口即可出现一下页面,如果是云服务器记得开放端口。
welcome to nginx

使用shell脚本创建

将在当前用户文件夹下新建 nginx文件夹用于挂载容器文件。

#!/bin/bash
echo "------start------"
# 拉取镜像
docker pull nginx
# 自定义容器名称
read -p "container name?" nginxName
# 挂载文件夹
path="nginx"
# 挂载目录
userPath="/home/$USER/$path"
echo $userPath
# 如果目录不存在,则创建目录
if [ ! -d "$userPath" ]
then
    mkdir $userPath
fi

if [ ! -d "$userPath/etc/nginx" ]
then
    mkdir -p "$userPath/etc/nginx"
fi
# 创建临时容器,拷贝出 nginx.conf 文件,然后删除容器
if [ ! -f "$userPath/etc/nginx/nginx.conf" ]
then
    testName="test"
    docker run --name $testName -d nginx
    docker cp $testName:/etc/nginx/nginx.conf $userPath/etc/nginx
    docker container stop $testName
    docker container rm $testName
fi

docker run --name $nginxName \
-p 18080:80 --privileged=true \
-v $userPath/etc/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v $userPath/etc/nginx/conf.d:/etc/nginx/conf.d \
-v $userPath/usr/share/nginx/html:/usr/share/nginx/html \
-v $userPath/var/log/nginx:/var/log/nginx/ \
-d nginx
# $nginxName 为用户输入的容器名称
# 18080 为宿主机端口,根据需要设置 
# --privileged=true 赋予权限
# $PWD 指主机当前目录--这里指的是~/nginx,根据需要设置。主机目录:容器目录

docker ps
echo "------end------"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值