-
Other resources:
-
Table of Contents:
- [TODO - describe different parts of a
docker-compose.ymlfile.]
- [TODO - include a
Dockerfile.multistagesetup and link Working with Images to it]
For direct documentation, see the Docker CLI and Compose CLI references, found here.
-
# for the "Dockerfile" in current directory: docker build . # if you want to tag your build (making it easier to find/use later) docker build --tag project_name:tag . # if you have a different Dockerfile you want to use: docker build --tag project_name:multistage -f Dockerfile.multistage .
This builds an image based off of the instructions in the
Dockerfilefile; when using theDockerfile.multistagefile it compiles the image to a smaller version (see the Multistage Dockerfile section for more info). -
docker image ls
This lists all images, example:
REPOSITORY TAG IMAGE ID CREATED SIZE project_name multistage 9983b3c98823 About an hour ago 18.8MB
-
# Run a built image that has the tag "project_name:multistage" docker run -p 3010:3010 --name project_name project_name:multistage # Run a built image that has the container id "36beab9d9323" docker run -p 3010:3010 --name project_name 36beab9d9323
This runs the image in the terminal inside of a container with the name
project_name(from--name). -
# Run a built image that has the tag "project_name:multistage" docker run -d -p 3010:3010 --name project_name project_name:multistage # Run a built image that has the container id "36beab9d9323" docker run -d -p 3010:3010 --name project_name 36beab9d9323
This runs the image in a detached container with the name
project_name(from--name). -
docker ps
This lists all running containers:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 36beab9d9323 project_name:multistage "/project_name…" 9 minutes ago Up 9 minutes 0.0.0.0:3010->3010/tcp project_name -
docker ps --all
This lists all containers (running, stopped, etc):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 36beab9d9323 project_name:multistage "/project_name…" 9 minutes ago Up 9 minutes 0.0.0.0:3010->3010/tcp project_name 21abeb8a3932 project_name:multistage-test "/project_name…" 10 minutes ago Exited (2) 3 seconds ago project_name -
docker stop project_name
This stops a running container with the name of
project_name. -
docker restart project_name
This restarts a stopped container with the name of
project_name. -
docker rm project_name
This deletes a container with the name of
project_name.
-
# for the "docker-compose.yml" in current directory: docker-compose config # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] config
Validate the
docker-compose.ymlfile before running it. -
# for the "docker-compose.yml" in current directory: docker-compose up # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] up
Run the *last-built
docker-compose.ymlproject in the terminal; use-fwhen you need a different docker-compose file (docker-compose.ymlin the current directory is the default.)*"last-built" meaning that
docker-compose updoesn't "re-build" anything, even if the code has changed; if you don't want the "last built", make sure you add--buildto the command to trigger a "re-build"-
# for the "docker-compose.yml" in current directory: docker-compose up -d # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] up -d
Run the *last-built
docker-compose.ymlproject in detached mode. -
# for the "docker-compose.yml" in current directory: docker-compose up --build -d # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] up --build -d
Build, then run the
docker-compose.ymlfile in detached mode. -
# for the "docker-compose.yml" in current directory: docker-compose up --build # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] up --build
Build, then run the
docker-compose.ymlfile in the terminal.NOTE:
Docker Compose is a useful tool, but it has its own quirks. For example, no rebuild is triggered on the update to the source code unless the
--buildflag is provided. It is a very common pitfall to edit one’s source code, and forget to use the--buildflag when runningdocker-compose up. source
-
-
# for the "docker-compose.yml" in current directory: docker-compose down # if you have a different compose file you want to use: docker-compose -f [docker-compose-dev.yml] down
This will remove the containers created during
docker-compose up. -
docker-compose ps
List running docker-compose projects.
Name Command State Ports ----------------------------------------------------------------------------------------------------- project_name /project_name Up 0.0.0.0:80->3010/tcp,0.0.0.0:3010->3010/tcp
Not sure what this is for, tbh?
(source: https://docs.docker.com/cloud/ecs-integration/)
docker context create ecs myecscontextdocker context lsdocker context use myecscontext