docker 安装nginx

docker 安装nginx

下载镜像

# 第一种方式 在线下载镜像(联网下推荐)
docker pull nginx
# 第二中方式通过 hub.docker.com 搜索nginx的Dockerfile 编译成镜像

安装

  • 启动一个nginx容器并且cp nginx的数据到宿主机,方便新的ngin容器做数据卷挂载

    如果不需要挂载数据卷,此步骤可以直接忽略

    # 1.查看本地nginx镜像的ID并且启动nginx容器
    sudo docker images nginx
    REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
    nginx        latest    f6d0b4767a6c   9 days ago   133MB
    
    # 2.先启动 一个nginx容器
    sudo docker run -it \
    --name=nginx-test \
    f6d0b4767a6c \
    /bin/bash
    # 3.cp配置目录到宿主机
    sudo whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
    # 4.ctrl+P+Q 回到宿主机执行cp
    # 5.创建宿主机数据卷存储目录
    sudo mkdir -p /home/app/nginx-1.19.6
    # 6.执行cp fbd961bf2d4d为具体的容器ID,通过docker ps 获取
    sudo docker cp b784fa08c71b:/etc/nginx /home/app/nginx-1.19.6/ 
    sudo docker cp b784fa08c71b:/usr/sbin /home/app/nginx-1.19.6/
    sudo docker cp b784fa08c71b:/usr/lib /home/app/nginx-1.19.6/
    sudo docker cp b784fa08c71b:/usr/share /home/app/nginx-1.19.6/share
    # 7.删除nginx容器
    docker ps -a
    docker rm -f 容器ID
    
  • 启动一个挂载宿主机目录的nginx容器

    # 启动新的nginx,如果不需要挂载数据卷,[-v 参数]指令可忽略
    sudo docker run -it \
      -p:80:80 \
      -v /home/app/nginx-1.19.6/nginx:/etc/nginx \
      -v /home/app/nginx-1.19.6/sbin:/usr/sbin \
      -v /home/app/nginx-1.19.6/lib:/usr/lib \
      -v /home/app/nginx-1.19.6/share/nginx:/usr/share/nginx \
      --name=nginx-1.19.6 \
      f6d0b4767a6c \
      /bin/bash
    
  • 启动测试nginx

    # 第一种:进入容器内启动
    sudo docker exec -it 容器ID(docker ps 获取) /bin/bash
      # 根据whereis nginx 获取nginx的配置以及启动目录
      # 启动
      ./usr/sbin/nginx 
    # 第二种:在挂载数据卷的前提下,在宿主机启动
    sudo docker exec -it 容器ID(docker ps 获取) ./usr/sbin/nginx 
    

错误

  • 1.ps command未找到

    docker 容器内 ps 时报错:bash: ps: command not found

    # nginx 镜像未打包ps命令;执行以下指令
    

sudo apt-get update && apt-get install procps

你可能感兴趣的:(docker 安装nginx)