工具系列 | PHPSTROM 连接Docker容器 && 配置XDEBUG调试

1、什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2、服务模式

C/S模式。Docker是一个客户端-服务端(c/s)的架构程序。docker是以客户端(client)和守护进程(server)来运行。

3、通信方式

Unix的socket套接字,如:unix:///var/run/docker/sock(默认连接方式)

4、完整的Docker组成

(1)Docker Client客户端
(2)Docker Daemon服务端(守护进程)
(3)Docker Image 镜像
(4)Docker Container 容器

5、Docker 仓库(hub)

仓库(Repository)是集中存放镜像的地方。目前 Docker 官方维护了一个公共仓库 dDocker Hub。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。

6、镜像(image)

可理解为一个面向Docker引擎的只读模板,包含了文件系统。如:一个镜像可以只包含一个完整的操作系统环境,也可以安装了其他的应用程序。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像。

7、镜像构建

即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。默认是从 Docker Hub 公共镜像源下载。

dockerfile 的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile  为 docker build 命令准备的,用于构建一个自定义的 image 镜像。

在 docker-compose 里也可以用来实时 build。docker-compose.yml  为 docker-compose 准备的脚本,可以同时管理多个 container ,包括他们之间的关系、用官方 image 还是自己 build 、各种网络端口定义、储存空间定义等。

如果镜像是从 docker hub registry 拉取下来的,那么 Dockerfile 就不需要;如果镜像是需要 build 的,那就需要提供 Dockerfile .

Dockerfile 就是记录了一个镜像的制作过程。把脚本把安装过程全部记录下来,再次安装的时候,执行脚本就行了。有了 Dockerfile, 只要执行 docker build . 就能制作镜像,而且 Dockerfile 就是文本文件,修改也很方便。

8、容器启动

容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。

(1)针对单个容器,这可以通过 docker run 来运行。

(2)针对多个容器,这可以通过 docker-compose up 来运行。

9、多个容器的运行

而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。

docker-compose 是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。

而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就可以了

docker-compose 是解决项目需要哪些镜像、每个镜像怎么配置、要挂载哪些 volume、映射哪些端口 等等信息,都包含在 docker-compose.yml 里。

要启动服务,只需要 docker-compose up 就行,停止也只需要 docker-compse stop/down

Dockerfile 与 docker-compse.yml 文件的区别

Dockerfile 记录单个镜像的构建过程, docker-compse.yml 记录一个编排容器(多个镜像)的构建过程。

原文地址:https://www.cnblogs.com/tinywan/p/12079601.html

时间: 2024-08-03 23:15:24

工具系列 | PHPSTROM 连接Docker容器 && 配置XDEBUG调试的相关文章

Docker 网络之pipework 工具(2)将Docker容器配置到本地网络环境中

为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求.这个需求其实很容易实现,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了.下面我们来操作一下,我主机A地址为192.168.1.107/24,网关为192.168.1.1,需要给Docker容器的地址配置为192.168.1.150/24.在主机A上做如下操作:安装pipework下载地址:wgethttps://github.com/jpetazz

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

通过nsenter连接docker容器

通常连接Docker容器并与其进行交互有四种方法.详情见:https://github.com/berresch/Docker-Enter-Demo,下面摘录nsenter连接的方式. 查看是否安装nsenter [[email protected] ~]# whereis nsenter nsenter: /usr/bin/nsenter /usr/share/man/man1/nsenter.1.gz 如果没安装可创建install.sh,并执行 #!/bin/bash curl https

ssh连接docker容器

有两种方法: 1.通过宿主机的端口映射访问docker 在宿主机上启动容器,分配端口,启用ssh服务: docker run -p 10022:22 -d sshd:ubuntu /usr/sbin/sshd -D ssh连接: ssh 用户名@192.168.163.131 -p 10022 https://www.jb51.net/article/114048.htm 2.ssh直接访问docker 启动sshd服务 创建ssh用户admin.密码 ifconfig配置ip ssh [ema

Visual Studio Code IDE + Docker实现PHP Xdebug调试

一.Docker中安装配置Xdebug 通过phpinfo()输出当前安装的PHP版本信息,将信息拷贝到https://xdebug.org/wizard.php相应输入框中,系统会自动检测并推荐合适的xdebug版本,如下图所示: 点击上图所示的操作按钮,会出现如下操作引导界面: 从visual studio code IDE中进入对应的docker容器(笔者这里的php-fpm的容器名称为files_php-fpm), 通过wget http://xdebug.org/files/xdebu

phpStorm配置xdebug调试总结 [Mac/Linux]

本人习惯netbeans-xdebug调试 我是在Mac本上开发, 大家Linux配置xdebug也可以参考 我的PHP 是通过mac homebrew 安装,所以xdebug的安装我也是用homebrew  (类似 linux wget / yum) 直接进入话-操作命令步骤如下: 1 mac 安装homebrew :ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&

PhpStorm配置xdebug调试

下载xdebug xdebug官网 根据php 版本下载相应的版本, 把本地的phpinfo()输出的内容全部复制到   https://xdebug.org/wizard.php 中, 分析出当前环境需要下载哪个版本xdebug, 把文件放在php安装目录下ext目录内,修改php.ini 配置文件,增加如下内容: [Xdebug] ;zend_extension=C:\wamp\PHP5\ext\php_xdebug.dll  zend_extension = "<path to ph

客户端远程连接docker容器中的mysql 报1251错误

1.启动容器: [[email protected] ~]# docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql2.进入容器: [[email protected] ~]# docker exec -it 容器id bash3.进入mysql: [email protected]:/# mysql -uroot -p4.输入密码,进入到mysql界面: 5.对远程连接进行授权: mysql> GRANT ALL ON *.

Docker教程系列三:Docker容器操作

1查看容器 l  查看正在运行容器: docker ps l  查看所有的容器(启动过的历史容器): docker ps –a l  查看最后一次运行的容器: docker ps –l l  查看停止的容器 docker ps -f status=exited 2创建与启动容器 l  创建容器常用的参数说明: l  创建容器命令:docker run l  -i:表示运行容器 l  -t:表示容器启动后会进入其命令行.加入这两个参数后,容器创建就能登录进去.即分配一个伪终端. l  --name