1
2
docker pull medicean/vulapps:base_lamp
//拉取php ubantu mysql apache 综合一体化环境 其中 php为5.5.9

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
2
3
docker ps -a 列出曾经运行过的容器
docker ps 列出正在运行的容器
docker ps -q 只显示运行容器的编号

退出容器

1
2
exit  #退出并停止容器
Ctrl + P +Q 退出容器容器不停止

删除容器

1
2
3
docker rm 容器id(必须处于停止状态)
docker rm -f $(docker ps - aq) #删除所有容器
docker ps -a -q | xargs docker rm #删除所有容器

启动和停止容器的操作

1
2
3
4
docker start 容器id  # 启动容器
docker restart 容器id # 重启
docker stop 容器id # 停止

常用其他命令

  • 后台启动 容器
1
2
3
4
docker run -d containerid 
docker ps 发现容器停止运行了
docker 使用后台运行就必须有一个前台进程 docker 发现没有应用就会自动停止
# nginx 容器启动后发现自己没有提供服务就会立刻停止服务
  • 查看日志

    1
    2
    docker 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
    2
    docker ps -a #只要容器在数据就在,与它是否运行无关
    docker cp 容器id: 容器内文件路径 目的路径

作业:安装一个niginx ,tomcat

1
2
3
4
5
6
#官方使用
docker run --it --rm tomcat:9.0
#用于测试,启动完停止后自动删除数据,用于测试

#我们常用的命令启动
docker run -d -p 3355:8080 --name tomcat01 tomcat
  • 查看内部资源消耗信息

    1
    docker stats #如果发现内存不够容器运行,可以在启动时限制其内存