docker1
1 | docker pull medicean/vulapps:base_lamp |
Docker容器与本地系统之间的连接主要通过网络接口实现。Docker容器运行在宿主机的虚拟网络环境中,这个环境与宿主机的网络环境是隔离的,但它们之间可以通过特
定的网络接口进行通信。Docker提供了多种网络模式来实现容器与宿主机或其他容器之间的通信,包括桥接模式(bridge)、主机模式(host)、无网络模式(
none)和用户定义的网络模式(user-defined networks)。
桥接模式(Bridge)
桥接模式是Docker的默认网络模式。在这种模式下,Docker会创建一个虚拟网桥(通常名为docker0),并将容器连接到这个网桥上。容器通过这个网桥与宿
主机和其他容器进行通信。这种模式下,容器可以通过宿主机的IP地址访问到宿主机上的服务,反之亦然。
主机模式(Host)
在主机模式下,容器共享宿主机的网络命名空间,因此容器的网络接口直接连接到宿主机的网络接口。这意味着容器可以直接访问宿主机的网络资源,包括端口和IP地址。
无网络模式(None)
无网络模式下,容器不会连接到任何网络,也就是说,它不能访问外部网络,也不能被外部网络访问。这种模式通常用于安全性要求高的应用。
用户定义的网络模式(User-defined networks)
用户定义的网络模式允许用户创建自己的网络,并将容器连接到这些网络上。这种模式提供了更多的灵活性和控制,例如,可以设置容器之间的通信规则,或者将容器连接到特定的子
网。
连接方式
- 通过IP地址:在桥接模式下,容器可以通过宿主机的IP地址访问到宿主机上的服务。反之,宿主机也可以通过容器的IP地址访问容器上的服务。
- 通过端口映射:Docker允许将容器的端口映射到宿主机的端口,这样就可以通过宿主机的IP地址和映射的端口访问到容器上的服务。
- 通过Docker网络:在用户定义的网络模式下,容器可以通过容器名称或服务名称(如果使用Docker Compose)访问到同一网络中的其他容器。
总结来说,Docker容器与本地系统之间的连接主要通过网络接口实现,具体的连接方式取决于Docker的网络模式配置。
1 | docker ps -a 列出曾经运行过的容器 |
退出容器
1 | exit #退出并停止容器 |
删除容器
1 | docker rm 容器id(必须处于停止状态) |
启动和停止容器的操作
1 | docker start 容器id # 启动容器 |
常用其他命令
- 后台启动 容器
1 | docker run -d containerid |
-
查看日志
1
2docker logs -f -t --tails 日志条数 容器id
-tf 显示日志并且时间戳 -
查看容器中进程信息
1
docker top 容器id
-
查看镜像元数据
1
docker inspect id
-
进入当前正在运行容器
1
2
3
4我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
命令
docker exec -it 容器id /bin/shell (bash/shell)
docker attach 容器id #进入容器正在执行的终端,不会启动新的进程 -
从容器拷贝文件进入主机
1
2docker ps -a #只要容器在数据就在,与它是否运行无关
docker cp 容器id: 容器内文件路径 目的路径
作业:安装一个niginx ,tomcat
1 | 官方使用 |
-
查看内部资源消耗信息
1
docker stats #如果发现内存不够容器运行,可以在启动时限制其内存
评论