Docker
屏幕快照 2019-07-01 下午12.56.55.png基本组成:
容器相关技术:依赖Linux内核
疑问?
可能大家常常听到docker 是相互隔离的?那为什么容器之间可以隔离?怎么隔离的?用到了哪些技术?带着疑问,这就引入了命名空间以及控制组的概念。
-
命名空间:大家都知道在编程语言中,命名空间是为了代码隔离,互不影响,在操作系统是为了系统资源的隔离,比如:文件系统、进程、网络。那么在docker中有哪些隔离技术呢?
. PID 进程隔离
. NET 网络隔离
. IPC 进程通信隔离
. MNT 文件系统隔离
.UTS 隔离内核
这些资源又是如何管理的?这就引入了控制组的概念。
-
控制组: 是linux 提供的资源隔离技术,来源于google工程师,在2017年被linux 引入,如果没有控制组的技术,就没有今天的docker技术。
我平时常用的容器基本操作
-
启动容器 :docker run ubuntu echo 'hello-world'
-
启动交互式容器:docker run -i -t ubuntu echo 'hello-world' / docker run -d
. 退出:ctrl + p + q
. 再次进入: docker attach [id]
-
查看容器:docker ps [-a] [-l]
注意:docker ps 不加任何参数,是指:查看正在运行中的容器。
-
查看详细信息容器:docker inspect id/ containerName
-
重新启动已经【停止】的容器:docker start [-i] containerName
-
删除已经 【停止】的容器:docke rm containerName
-
查看守护容器运行情况:docker logs [options] id
-
查看容器里面进程情况:docker top id
-
在运行中容器中启动新的进程:docker exec [-d] [-t] [-i] containerName
-
停止守护容器: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
网友评论