You can use Portworx to implement storage for Docker Universal Control Plane (UCP). This section is qualified using Docker 1.11 and Universal Control Plane 1.1.2.

Step 1: Install Docker UCP

Follow the instructions for Installing Docker UCP.

You must run Docker Commercially Supported (CS) Engine.

Step 2: Update your docker.service file

Not all nodes within a UCP cluster will necessarily be running Portworx. For UCP to properly identify Portworx nodes, the Docker Daemon must start with a Label that indicates Portworx is running. To make that happen, you will need to update the docker.service file.

To find where your docker.service file is located, run the systemctl command:

systemctl status docker

Then, replace the existing ExecStart line with the one for your Docker version.

Docker 1.11

ExecStart=/usr/bin/docker daemon -H fd:// --label pxfabric=px-cluster1

Docker 1.12

ExecStart=/usr/bin/dockerd --label pxfabric=px-cluster1

Next, reload systemctl and restart the docker daemon:

# systemctl daemon-reload
# systemctl restart docker

You can now verify that the label is in place for whichever nodes are running Portworx:

# docker info

You can use the fabric label to specify different PX-based clusters.

Step 3: Launch a container

To launch a container from the command line and restrict it to running on a node that is running Portworx:

docker  run -d -P -e constraint:pxfabric==px-cluster1 --name db mysql

Or, from the UCP GUI for launching a container, specify a constraint for pxfabric as follows: UCP GUI constraints

For more information on Docker Filters and Constraints, see Swarm filters.