PhpStorm 2022.3 Help

Docker containers

Docker containers are runtime instances of the corresponding images. PhpStorm uses Docker run configurations to execute the commands that build Docker images and run containers.

Enable the Docker plugin

This functionality relies on the Docker plugin, which is bundled and enabled in PhpStorm by default. If the relevant features aren't available, make sure that you didn't disable the plugin.

  1. Press Ctrl+Alt+S to open the IDE settings and select Plugins.

  2. Open the Installed tab, find the Docker plugin, and select the checkbox next to the plugin name.

Run a container from an existing image

You can run a container from any locally existing Docker image that you either pulled or built previously.

  1. In the Services tool window, select an image and click The Create container button or select Create Container from the context menu.

    The Create container context menu item
  2. In the Create Container popup, click Create….

  3. In the Create Docker Configuration dialog that opens, you can provide a unique name for the configuration and specify a name for the container. If you leave the Container name field empty, Docker will give it a random unique name.

    The Create Docker Configuration dialog
  4. When you are done, click Run to launch the new configuration.

This creates and starts the Docker Image run configuration.

Run a container from a Dockerfile

  1. Open the Dockerfile from which you want to run the container.

  2. Click Run on Docker in the gutter and select to run the container from this Dockerfile.

    The Run on Docker popup

This creates and starts the Dockerfile run configuration with default settings, which first builds an image based on the Dockerfile and then runs a container based on this image.

To create a run configuration with custom settings, click Run on Docker in the gutter and select New Run Configuration…. You can specify a custom tag for the built image, as well as a name for the container, and a context folder from which to read the Dockerfile. The context folder can be useful, for example, if you have some artifacts outside of the scope of your Dockerfile that you would like to add to the file system of the image.

Docker run configurations

Create a Docker run configuration

  1. From the main menu, select Run | Edit Configurations.

  2. In the Run/Debug Configurations dialog, click The Add New Configuration button, expand the Docker group, and select the desired type of run configuration.

    Docker run configuration dialog
Docker Image

Created automatically when you run a container from an existing image. For more information, see Docker Image run configuration.

Dockerfile

Created automatically when you run a container from a Dockerfile. For more information, see Dockerfile run configuration.

Docker-compose

Created automatically when you run a multi-container Docker application from a Docker Compose file. For more information, see Docker-compose run configuration.

Interacting with containers

Created containers are listed in the Services tool window. By default, the Services tool window displays all containers, including those that are not running. To hide stopped containers from the list, click The Filter button in the toolbar, select Docker, and then click Stopped Containers to remove the checkbox.

When you select a container, you can view the Build Log tab that shows the deployment log produced by the corresponding Docker run configuration while creating and starting the container.

The Build Log tab of a container selected in the Services tool window

The Dashboard tab provides important information about the container. Besides its name and hash ID, it also lists the environment variables, ports, and volume bindings. You can add, edit, and remove the environment variables, ports, and volume bindings. However, these changes require you to recreate the container and do not change in the Docker run configuration that is used to create this container. This means that the changes will not persist when you run the configuration next time.

The Dashboard tab of a container selected in the Services tool window

For more information, see Container dashboard.

Execute a command inside a running container

  1. In the Services tool window, right-click the container name and then click Exec.

  2. In the Run Command in Container popup, click Create and Run… to create and execute a new command.

    Alternatively, you can select one of the commands that you ran previously.

  3. In the Exec dialog, type the command and click OK. For example:

    ls /tmp

    List the contents of the /tmp directory

    mkdir /tmp/my-new-dir

    Create the my-new-dir directory inside the /tmp directory

    /bin/bash

    Start a bash session

    The Exec tab with /bin/bash running

For more information, see the docker exec command reference.

View detailed information about a running container

  • In the Services tool window, right-click the container name and then click Inspect.

    The output is rendered as a JSON object on the Inspection tab.

    The Inspection tab

For more information, see the docker inspect command reference.

View processes running in a container

  • In the Services tool window, right-click the container name and then click Show Processes.

    The output is rendered as a JSON array on the Processes tab.

For more information, see the docker top command reference.

Attach a console to the container output

  • In the Services tool window, right-click the container and then click Attach.

    The console is attached to the output of the ENTRYPOINT process running inside a container, and is rendered on the Attached Console tab.

For more information, see the docker attach command reference.

Last modified: 17 March 2023