美文网首页
Docker 小实战 :容器中部署静态网站

Docker 小实战 :容器中部署静态网站

作者: 原型设计 | 来源:发表于2019-07-01 15:08 被阅读0次

    Docker

    基本组成:

    屏幕快照 2019-07-01 下午12.56.55.png

    容器相关技术:依赖Linux内核

    疑问?

    可能大家常常听到docker 是相互隔离的?那为什么容器之间可以隔离?怎么隔离的?用到了哪些技术?带着疑问,这就引入了命名空间以及控制组的概念。

    1. 命名空间:大家都知道在编程语言中,命名空间是为了代码隔离,互不影响,在操作系统是为了系统资源的隔离,比如:文件系统、进程、网络。那么在docker中有哪些隔离技术呢?

      . PID 进程隔离

      . NET 网络隔离

      . IPC 进程通信隔离

      . MNT 文件系统隔离

      .UTS 隔离内核

      这些资源又是如何管理的?这就引入了控制组的概念。

    2. 控制组: 是linux 提供的资源隔离技术,来源于google工程师,在2017年被linux 引入,如果没有控制组的技术,就没有今天的docker技术。

    我平时常用的容器基本操作

    1. 启动容器 :docker run ubuntu echo 'hello-world'

    2. 启动交互式容器:docker run -i -t ubuntu echo 'hello-world' / docker run -d

      . 退出:ctrl + p + q

      . 再次进入: docker attach [id]

    3. 查看容器:docker ps [-a] [-l]

      注意:docker ps 不加任何参数,是指:查看正在运行中的容器。

    4. 查看详细信息容器:docker inspect id/ containerName

    5. 重新启动已经【停止】的容器:docker start [-i] containerName

    6. 删除已经 【停止】的容器:docke rm containerName

    7. 查看守护容器运行情况:docker logs [options] id

    8. 查看容器里面进程情况:docker top id

    9. 在运行中容器中启动新的进程:docker exec [-d] [-t] [-i] containerName

    10. 停止守护容器:docker stop/docker kill

    实战: 在容器中部署 静态网站

    1.创建映射80端口的交互式容器

    docker run -p 80 -t -i ubuntu /bin/bash
    

    2.安装Nginx
    apt-get install -y nginx

    注意:如果这部发现有报错:E: Unable to locate package nginx ,先执行更新操作:apt-get update</pre>

    3.安装文本编辑器Vim

     apt-get install -y vim
    

    4.创建静态页面

    mkdir -p /var/www/html
    cd /var/www/html/
    vim index.html
    ​
    写入:
    <html>
    <head>
     <title>nginx web html!</title>
    </head>
    <body>
     <h1>hello ,welcome nginx web html!</h1>
    </body>
    </html>
    

    ​5.修改Nginx配置

    whereis nginx
    ​
    ls /etc/nginx/
    ​
    vim /etc/nginx/sites-available/default
    ​
    root /var/www/html;
    

    6.运行Nginx

    ​
    nginx
    ​
    ps -ef
    ​
    ctrl + p + q 
    
    

    7.验证网站访问

    docker port id
    
    curl 0.0.0.0:32768
    

    8.停止容器后注意

    docker stop c21b62cb3e1d
    
    docker start -i c21b62cb3e1d
    
    ctrl + p + q 退出
    
    ps -ef  重新启动后:nginx服务并没有重新启动。
    
    如何再次启动nginx 服务呢?需要用到 docker exec
    
    docker exec id nginx 
    
    docker top id 
    
    屏幕快照 2019-07-01 下午2.49.39.png

    相关文章

      网友评论

          本文标题:Docker 小实战 :容器中部署静态网站

          本文链接:https://www.haomeiwen.com/subject/ivbeqctx.html