docker 实验--安装nginx

本文介绍如何使用Docker快速部署Nginx服务,并通过一系列命令实现从容器创建到服务验证的全过程。

机器:W7 

工具:Docker-Box  的   Docker Quickstart Terminal

在安装好Docker Box  的情况下,运行Docker Quickstart Terminal。

1.docker run -i -t --name=web -p 80  ubuntu /bin/bash

docker run:运行容器

-i   :容器的标准输入保持打开

-t  docker分配一个伪终端并绑定到容器的标准输入上

--name:指定生成容器的名字

-p 80:指定绑定80端口

ubuntu:镜像,将会在dockerhub 官网上下载最后版本的Ubuntu

/bin/bash: 运行容器的bash 文件,保持容器运行,不然容器会终止

2.下载完成后,执行以下的指令

2.1 apt-get update      同步源文件

2.2 apt-get install vim     下载文本工具 vim 

2.3 apt-get install nginx    下载nginx

2.4 whereis nginx      查找 nginx 的安装位置

2.5 cat    /etc/nginx/sites-enabled/default  查看nginx 的配置文件,找到root 对应的目录,我的目录是/usr/www/html,也可以自己改为其他的

2.6 mkdir p /usr/www/html  新建目录

2.7 vim  index.html 编写一个简单的html 文件,如下,保存,退出

       <html>
        <body>ddddd</body>
       <html>

2.8 nginx   启动nginx    

2.9 ps -ef  查看nginx 是否已经启动,出现有nginx 的信息,说明已经启动

  root      3543     1  0 07:57 ?        00:00:00 nginx: master process nginx
 www-data  3544  3543  0 07:57 ?        00:00:00 nginx: worker process

2.10 apt-get install curl   安装curl 的工具

2.11 curl  127.0.0.1   检查时候能查看网页的信息,将出现网页的代码,说明nginx 的配置没有问题,nginx 正常运行

  <html>
        <head></head>
        <body>ddddd</body>
<html>

3  Ctrl -P,Ctrl -Q 退出容器,容器保持运行

4.在终端执行 docker ps ,查看运行的容器,可以看到绑定到容器80 的端口是32770

CONTAINER ID        IMAGE               COMMAND             CREATED
STATUS              PORTS                   NAMES
e49069c638e6        ubuntu              "/bin/bash"         2 hours ago
Up 2 hours          0.0.0.0:32770->80/tcp   web

5.查看docker box 的ip  docker-machine ip,我的机器是  192.168.99.100

6.在终端运行  curl 192.168.99.100:32770 可以显示在容器的html 网页的代码,或者在W7 的浏览器上进入网页,网址192.168.99.100:32770

<html>
        <head></head>
        <body>ddddd</body>
<html>

 

### Docker 命令中 `-d` 和 `-it` 参数的区别及使用场景 #### 1. **`-d` 参数详解** `-d` 参数表示以分离模式(detached mode)运行容器。这意味着容器将在后台运行,而不会绑定到当前终端。这种模式下,用户的终端不会被阻塞,可以继续执行其他命令。 - 当指定 `-d` 参数时,Docker 启动容器后立即返回容器 ID,将容器置于后台运行[^1]。 - 如果未使用 `-d` 参数,则容器将以前台模式运行,其输出会直接显示在当前终端上。此时,如果用户按 `Ctrl+C` 或退出交互模式,容器可能会停止运行[^1]。 示例: ```bash docker run -d nginx ``` 这条命令启动了一个 Nginx 容器,使其以后台模式运行。用户可以通过 `docker ps` 查看正在运行的容器状态。 --- #### 2. **`-it` 参数详解** `-it` 是 `-i` 和 `-t` 的组合参数,具有以下功能: - **`-i`(或 `--interactive`)**:保持容器的标准输入始终打开,即使没有附加终端。这使得可以在容器内实时输入命令与之交互[^3]。 - **`-t`(或 `--tty`)**:为容器分配一个伪终端(pseudo-TTY),从而提供类似本地终端的操作体验。它主要用于支持交互式应用程序,例如 Shell 环境。 综合来看,`-it` 参数的作用是创建一个带有交互式终端的环境,适合需要手动操作容器内的场景。 示例: ```bash docker run -it ubuntu /bin/bash ``` 这条命令启动了一个基于 Ubuntu 镜像的容器,进入其交互式 Bash 终端。用户可以直接在容器内执行命令。 --- #### 3. **两者的区别与适用场景** | 参数 | 功能描述 | 使用场景 | |---------|----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | `-d` | 让容器以后台模式运行,释放当前终端 | 适用于不需要与容器交互的任务,例如 Web 服务器、数据库服务等长期运行的服务 | | `-it` | 创建一个交互式终端,允许用户向容器发送命令查看输出 | 适用于需要与容器交互的场景,例如调试应用、测试镜像、运行交互式工具 | --- #### 4. **结合使用的案例分析** 有时可以根据需求同时使用 `-d` 和 `-it` 参数。例如,在某些情况下,可能希望容器以后台模式运行,但仍保留交互能力以便稍后进入容器进行排查或其他操作。 示例: ```bash docker run -itd --name my_container ubuntu ``` 这条命令启动了一个名为 `my_container` 的 Ubuntu 容器,容器以后台模式运行,但仍然具备交互式终端的功能。随后可通过以下命令重新连接到该容器: ```bash docker exec -it my_container /bin/bash ``` --- #### 5. **注意事项** - 如果仅使用 `-d` 参数而不加 `-it`,则无法通过默认方式进入容器的交互式终端。在这种情况下,需借助 `docker attach` 或 `docker exec` 来实现交互。 - 对于长时间运行的服务型容器(如 MySQL、Nginx),建议优先使用 `-d` 参数;而对于临时性的调试或实验性任务,可以选择 `-it` 参数。 --- ### 示例代码对比 以下是单独使用 `-d` 和 `-it` 参数的效果对比: ```bash # 单独使用 -d 参数 docker run -d --name web_server nginx # 单独使用 -it 参数 docker run -it --name test_env ubuntu /bin/bash # 结合使用 -itd 参数 docker run -itd --name background_interactive ubuntu ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值