[Docker] Docker之安装Nginx
0 序言
略
1 安装步骤
Step1 下载镜像
- 搜素、下载镜像
https://hub.docker.com/_/nginx?tab=tags
这里选择官方镜像1.22.0版本
docker search nginx
docker pull nginx:1.22.0

- 查看下载的镜像
docker images

Step2 在宿主机创建挂载目录
用于存放默认页面、日志、配置文件,把这些文件挂载到宿主机上好处是:
在需要频繁修改Nginx配置的场景中,不需要关注容器中的数据,直接删除重建容器就好。
如果已经提前把对应nginx版本需要挂载的文件打包好了,这里直接解压放在对应的路径即可,不需要执行下面从容器复制文件的步骤。
cd /opt
tar -zxvf /opt/docker-nginx.tar.gz
没有这些文件的话,就创建目录,从容器中复制过来。
- 创建目录
mkdir -p /opt/docker-nginx
Step3 从容器中复制要挂载的文件
先简单创建容器运行,从容器里面复制要挂载的文件到宿主机上。
- 创建并运行容器,容器命名为nginx
docker run --name nginx -p 80:80 -d nginx:1.22.0
- 从容器nginx中复制nginx.conf文件到宿主机
docker cp nginx:/etc/nginx/nginx.conf /opt/docker-nginx/
ls -la /opt/docker-nginx/
docker cp nginx:/etc/nginx/conf.d/ /opt/docker-nginx/conf/
docker cp nginx:/usr/share/nginx/html/ /opt/docker-nginx/html/
docker cp nginx:/var/log/nginx/ /opt/docker-nginx/logs/
复制出的docker-nginx目录结构如下图:
- 打包目录
在
/opt目录下生成文件docker-nginx.tar.gz
cd /opt
tar -czvf docker-nginx.tar.gz /opt/docker-nginx/*
ls /opt
- 停止、删除容器
docker stop nginx
docker rm nginx
Step4 创建并运行容器
docker run -p 80:80 \
-v /opt/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker-nginx/logs:/var/log/nginx \
-v /opt/docker-nginx/html:/usr/share/nginx/html \
-v /opt/docker-nginx/conf:/etc/nginx/conf.d \
-v /etc/localtime:/etc/localtime \
--name nginx \
--restart=always \
-d nginx:1.22.0
参数说明:
- -p 映射端口,格式为“宿主机端口:容器端口”
- -v 挂载文件
docker run -it -v /test:/soft centos /bin/bash
冒号":"前面的目录是宿主机目录,后面的目录是容器内目录
容器目录不可以为相对路径
宿主机目录如果不存在,则会自动生成
- -e TZ=Asia/Shanghai 设置时区
- --privileged=true 让容器中的root用户拥有真正的root权限
- --name 容器名字,以后可以使用这个名字启动或者停止容器
- --restart=always docker启动时自动启动容器
- -d 指定要启动的镜像名
如下图,执行后返回容器id没有报Error,查看容器列表,nginx容器状态正常,则安装成功。


Step5 浏览器访问
浏览器访问
http://ip:80,可以看到nginx页面

如果安装失败,查看容器列表是否已有nginx容器,有的话需要删除容器后再重新创建。
X 参考文献
[Docker] Docker之安装Nginx的更多相关文章
- Docker Alpine Dockerfile 安装nginx,最小镜像
Docker Alpine Dockerfile 安装nginx,最小镜像 FROM alpine MAINTAINER will ## 将alpine-linux:apk的安装源改为国内镜像 RUN ...
- Docker容器编译安装Nginx
Docker容器编译安装Nginx,最简单的Nginx配置. 创建容器&进入容器 宿主机2080映射容器的80端口 [root@localhost ~]# docker run -i -d - ...
- 使用 Docker Alpine 镜像安装 nginx
微镜像Alpine,Alpine Linux 是一款独立的⾮商业性的通⽤ Linux 发行版,Alpine Linux 围绕 musl libc 和 busybox 构建,尽管体积很小,Apline ...
- Docker 实战(二)——centos7镜像安装nginx,将安装nginx的centos容器生成新的镜像,并导出
Docker centos7镜像安装nginx 1.安装docker 使用yum安装docker不再重复:见 Linux常用命令 2.pull centos 1)在docker仓库中搜索centos ...
- Docker安装nginx
直切正题: 一.安装nginx docker pull nginx 二.启动nginx容器 docker run --name mynginx -d -p : nginx 命令说明: -p 80:80 ...
- Linux、Docker安装Nginx
Docker安装Nginx #docker images nginx #docker search nginx #docker pull nginx #docker run -it -p 8084:8 ...
- centos7下使用docker安装nginx
需要环境docker,此处不做介绍. 1. docker拉取官方nginx镜像 docker pull nginx 2. 等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 ng ...
- docker 运行容器,安装Nginx
########################################## #运行容器 #安装Nginx #搜索.下载镜像 docker search nginx docker pull n ...
- mac环境下使用docker安装nginx
前言 距离上一篇文章已经很长时间,近期实在事情太多了,也没来得及继续更新一些新的内容.现在开发使用的工作实在太多了,小编实在忍受不了windows那样卡机的状态,于是最近换了一个mac电脑,虽然做开发 ...
- docker上安装nginx服务
环境 1.开启一个容器,安装nginx,略过 2.假如第一步新启动没映射端口的话,重新把容器保存为镜像然后再重新运行一个新容器,不建议在一个正在运行的容器上做端口映射 docker run ...
随机推荐
- java多线程--7 线程协作 线程池
java多线程--7 线程协作 线程池 并发协作模型--生产者消费者模式 这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间互相依赖,互为条件. java提供了几个方法解决线程 ...
- react中的虚拟DOM,jsx,diff算法。让代码更高效
在react中当你的状态发生改变时,并不是所有组件的内容销毁再重建,能复用的就复用 react 组件其实 就是按照层级划分的 找到两棵任意的树之间最小的修改是一个复杂度为 O(n^3) 的问题. 你可 ...
- Teamcenter_SOA开发:使用SOA登录Teamcenter
本文Teamcenter SOA使用C++参考SOA的例子进行编写,以下代码为登录Teamcenter,代码工程在Teamcenter四层环境下运行. SOA的库文件.样例文件.帮助文件在Teamce ...
- 团队如何选择合适的Git分支策略?
现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享.追溯.回滚及维护等功能.目前流行的代码管理工具,包括CVS,SVN,Git,Mercurial等. 相比CVS和SVN的 ...
- [Linux/CENTOS]YUM提示: Another app is currently holding the yum lock; waiting for it to exit...
1 问题描述 使用yum安装Nginx的安装依赖组件: yum -y install gcc gcc-c++ automake autoconf libtool make 但是,在执行过程中出现如下信 ...
- [MySQL]set autocommit=0与start transaction的区别[转载]
set autocommit=0指事务非自动提交,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务. 1.不管autocommit 是1还是 ...
- Java SpringBoot 7z 压缩、解压
Java SpringBoot 7z 压缩.解压 cmd 7z 文件压缩 7z压缩测试 添加依赖 <dependency> <groupId>org.apache.common ...
- Python_11 类的方法
一.查缺补漏 1. 实例方法必须用类实例化对象()来调用,用类来调用时会执行,但是self中不是实例化类地址而是传的字符串 二.类中的方法 1. 实例方法 1. 定义在类里面的普通方法(函数) 2. ...
- ray-分布式计算框架-集群与异步Job管理
0. ray 简介 ray是开源分布式计算框架,为并行处理提供计算层,用于扩展AI与Python应用程序,是ML工作负载统一工具包 Ray AI Runtime ML应用程序库集 Ray Core 通 ...
- Docker的实际应用
一. 数据持久化 我们什么情况下要做数据持久化呢? 一定是在做容器之前先预判好哪些文件是要永久存储的, 而不会跟着它容器的一个生命周期而消失. 比如说配置文件. 日志文件. 缓存文件或者应用数据等等. ...
