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

2019-07-01  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读