docker容器和本地
时间: 2025-01-09 15:35:35 浏览: 2
### Docker 容器与本地环境的区别
#### 一、资源隔离程度不同
Docker容器利用Linux内核特性中的Namespaces来提供进程级别的隔离机制[^2]。这意味着每个容器拥有独立的网络栈、PID空间和其他系统视图,从而使得它们之间相互不可见也不干扰。
#### 二、文件系统的差异
容器内部运行着基于镜像创建出来的只读层加上可写入的工作目录组成的分层结构;而宿主机则维持正常的磁盘分区布局并挂载各种存储设备。当启动一个新的容器实例时,默认情况下它不会影响到外部的操作系统状态。
#### 三、性能开销对比
由于不需要模拟完整的硬件平台,所以相比于传统意义上的虚拟化技术而言,由Docker构建起来的应用封装形式具有更低的CPU占用率以及更少内存消耗,在某些场景下甚至可以达到接近原生执行效率的程度。
---
### Docker 容器与本地环境的交互方法
#### 文件共享
可以通过定义卷(Volumes)的方式让两者间交换数据。例如下面这条命令会把当前目录映射至名为`webapp`的服务里边去:
```bash
docker run -v $(pwd):/usr/src/app webapp
```
这样做的好处是可以方便地调试应用程序代码而不必每次都重新打包新的版本上传送进去测试。
#### 网络通信
默认状态下每一个新产生的实例都会被分配有一个私有的IPv4地址连同对应的网关信息一起构成小型局域网的一部分。如果想要使外界能够访问到里面提供的HTTP服务,则需指定端口转发规则如下所示:
```bash
docker run -p 8080:80 nginx
```
上述指令表示将本机上的TCP协议第8080号监听位置绑定到了目标进程中所暴露出来的标准Web服务器接口之上。
#### 进程信号传递
有时候可能需要向正在运行的目标发送特定类型的中断请求比如停止或者重启之类的动作,这时就可以借助于CLI工具完成此类任务:
```bash
docker stop my_container_name_or_id
```
阅读全文