f74dcfdb0e59 my-custom-mysql "docker-entrypoint.s…" 2 hours ago Up 51 minutes 3306/tcp, 33060/tcp my-mysql
```
5. Verify that your initialization script was ran. Run the following command in
a terminal to show the contents of the `myothertable` table.
```console
$ docker exec my-mysql mysql -u root -pmy-secret-pw -e "SELECT * FROM mydb.myothertable;"
```
You should see output like the following.
```console
column_name
other_value
```
Any container ran using your `my-custom-mysql` image will have the table
initialized when first started.
## Use Docker Compose to run a database
Docker Compose is a tool for defining and running multi-container Docker
applications. With a single command, you can configure all your application's
services (like databases, web apps, etc.) and manage them. In this example,
you'll create a Compose file and use it to run a MySQL database container and a phpMyAdmin container.
To run your containers with Docker Compose:
1. Create a Docker Compose file.
1. Create a file named `compose.yaml` in your project directory. This file
will define the services, networks, and volumes.
2. Add the following content to the `compose.yaml` file.
```yaml
services:
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: mydb
ports:
- 3307:3306
volumes:
- my-db-volume:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
environment:
PMA_HOST: db
PMA_PORT: 3306
MYSQL_ROOT_PASSWORD: my-secret-pw
ports:
- 8080:80
depends_on:
- db
volumes:
my-db-volume:
```
For the database service:
- `db` is the name of the service.
- `image: mysql:latest` specifies that the service uses the latest MySQL
image from Docker Hub.
- `environment` lists the environment variables used by MySQL to
initialize the database, such as the root password and the database
name.
- `ports` maps port 3307 on the host to port 3306 in the container,