Skip to content

Instantly share code, notes, and snippets.

@roostercrab
Created October 10, 2019 16:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roostercrab/13ad8edd3e552fe1ab3e57c486e621fe to your computer and use it in GitHub Desktop.
Save roostercrab/13ad8edd3e552fe1ab3e57c486e621fe to your computer and use it in GitHub Desktop.
Docker notes extended
reformat.sh
export FORMAT="\nID\t{{.ID}}\nIMAGE\t{{.Image}}\nCOMMAND\t{{.Command}}\nCREATED\t{{.RunningFor}}\nSTATUS\t{{.Status}}\nPORTS\t{{.Ports}}\nNAMES\t{{.Names}}\n"
# this shell will only work on bash
# makes formatting vertical with FORMAT tag
COMMANDS:
https://docs.docker.com/engine/reference/commandline/docker/
DOCKERFILE:
FROM node
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 4000
CMD [ "npm", "start"]
BUILD DOCKER:
docker build -t jesse/simplebackend .
SHOW IMAGES:
docker images
REMOVE IMAGES:
docker rmi ******
RUN IMAGE:
docker run -p 4000:4000 jesse/simplebackend
RUN WITH TERMINAL INTERACTIVE:
docker run -ti
DELETE CONTAINER AFTER MAIN PROCESS:
docker run -rm *container* *cmd*
DELETE CONTAINER AFTER MULTIPLE PROCESSES:
docker run -ti *container* bash -c "*cmd*, *cmd*"
docker run -ti ubuntu bash -c "sleep 3; echo all done"
RUN IN BACKGROUND:
docker run -d -ti ubuntu bash
RUN CONTAINER WITH LIMITED MEMORY:
docker run --memory maximum-allowed-memory ******** *cmd*
RUN CONTAINER WITH RESTRICTED CPU:
docker run --cpu-shares
docker run --cpu-quota
ECHO-SERVER:
docker run --rm -ti -p 45678:45678 -p 45679:45679 --name echo-server ubuntu:14.04 bash
nc -lp 45678 | nc -lp 45679
(with netcat locally installed)
IN DIFFERENT SHELL:
nc localhost 45678
IN OTHER DIFFERENT SHELL:
nc localhost 45679
BACK IN FIRST DIFFERENT SHELL (TYPE):
here's some data
[IT SHOULD NOW APPEAR IN THE OTHER SHELL]
(without netcat locally installed)
IN DIFFERENT SHELL:
docker run --rm -ti ubuntu:14.04 bash
nc *computer's IP* 45678
IN OTHER DIFFERENT SHELL:
docker run --rm -ti ubuntu:14.04 bash
nc *computer's IP* 45679
BACK IN FIRST DIFFERENT SHELL (TYPE):
here's some data
[IT SHOULD NOW APPEAR IN THE OTHER SHELL]
GO IN TO DIAGNOSE:
docker exec -ti ********* bash
GO INTO CONTAINER:
docker attach ************
LEAVE CONTAINER BUT KEEP IT RUNNING:
ctrl+p, ctrl+q
LEAVE CONTAINER AND CLOSE IT:
ctrl+d
SEE WHAT IS RUNNING:
docker ps
docker ps --format $FORMAT
SEE LAST CONTAINER AND WHAT HAPPENED TO IT:
docker ps -l --format=$FORMAT
STOP CONTAINER:
docker stop *****
START CONTAINER:
docker start *****
SEND TO DOCKERHUB:
docker push *****
GET FROM DOCKERHUB:
docker pull mongo
DOCKER-COMPOSE.YML:
app:
container_name: app
restart: always
build: .
ports:
- "4000:4000"
links:
- mongo
mongo:
container_name: mongo
image: mongo
expose:
- "27017"
volumes:
- ./data:/data/db
ports:
- "27017:27017"
BUILD FROM DOCKER-COMPOSE:
docker-compose build
TO BUILD AND RUN:
docker-compose up
RUN IN BACKGROUND:
docker-compose up -d
***RECOMMENDED TO BRING THEM UP ONE AT A TIME***
TO RUN A CONTAINER FIRST:
docker-compose up -d *container_name*
COULD ALSO JUST USE "depends-on"?
CHECK LOGS FOR CONTAINER:
docker logs *****
STOP DOCKER CONTAINER:
docker kill *********
REMOVE DOCKER CONTAINER PERMANENTLY:
docker rm *********
STOP DOCKER-COMPOSE:
docker-compose stop
REMOVE *ALL* DOCKER CONTAINERS:
docker system prune
MAKE NEW IMAGE FROM CONTAINER:
docker commit ********
GIVE IT A NAME:
docker tag ************ image-name-goes-here
DO BOTH:
docker commit *container* *new-image-name*
docker network --help
docker inspect *********
kitematic
portainer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment