- 1 year ago
Windows docker, mount a volume and run a script in it
To mount a volume and run a script inside a Windows Docker container, you can follow these steps:
Create a script: First, create the script that you want to run inside the Docker container. Let's assume the script is named
myscript.ps1
and is located in the same directory as your Dockerfile.Write a Dockerfile: Create a Dockerfile in the same directory as your script. The Dockerfile will define the instructions to build the Docker image.
Dockerfile# Use the base Windows Server Core image
FROM mcr.microsoft.com/windows/servercore:ltsc2019
# Copy the script to the container
COPY myscript.ps1 .
# Set the working directory
WORKDIR .
# Run the script
CMD powershell -ExecutionPolicy Bypass -File myscript.ps1
In this example, the Dockerfile starts from the base Windows Server Core image, copies the myscript.ps1
file to the container, sets the working directory to the current directory, and specifies the command to run the script using PowerShell.
- Build the Docker image: Open a command prompt or PowerShell window and navigate to the directory containing the Dockerfile. Run the following command to build the Docker image:
bashdocker build -t myimage .
Replace myimage
with the desired name for your Docker image.
- Run the Docker container with a mounted volume: To mount a volume and run the script inside the Docker container, use the
-v
flag to specify the volume mapping. Run the following command to start the Docker container:
bashdocker run -v <host_directory>:<container_directory> myimage
Replace <host_directory>
with the path to the directory on your host machine that you want to mount as a volume. Replace <container_directory>
with the path to the corresponding directory inside the container where you want to mount the volume. This will make the contents of the <host_directory>
available inside the container at <container_directory>
.
Make sure to replace myimage
with the name of the Docker image you built in the previous step.
The Docker container will start, mount the volume, and execute the script myscript.ps1
using PowerShell.
By following these steps, you can mount a volume and run a script inside a Windows Docker container. The script and any changes made within the container will be persisted in the mounted volume on the host machine.