Docker - low-hill/Knowledge GitHub Wiki

Docker ๋ช…๋ น์–ด

์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ

  • docker ps

container์— ์ ‘๊ทผํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ํ•˜์œ„์™€ ๊ฐ™๋‹ค.

  • docker exec -it [container name] bash
$ docker exec <container name> <command>
 
ex) docker exec snowdeer_docker echo "Hello, SnowDeer"

container ip ํ™•์ธ

  • docker inspect container_id/container name

docker์˜ url ํ™•์ธ

  • docker-machine ls

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์žฌ์‹œ์ž‘, ์ •์ง€ํ•˜๋Š” ๋ช…๋ น์–ด

$ docker start <container name>        
$ docker restart <container name>      --์žฌ์‹œ์ž‘
$ docker stop <container name>          --์ •์ง€

ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์ ‘์†

$ docker attach <container name>

ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

$ docker rm <container name or id>

๋ชจ๋“  ์ปจ๋ฐ์ด๋„ˆ ์‚ญ์ œ(remove all stopped containers)

$ docker rm $(docker ps -a -q)

๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Application์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ํ•˜์œ„ ์˜ˆ์ œ๋Š” Redis ์„ค์น˜ ๊ณผ์ •์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

  • ํ•˜์œ„ ๋ช…๋ น์–ด๋กœ Redis ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ $ docker search redis

  • ์ด๋ฏธ์ง€ ๋‹ค์šด docker pull redis:x.x.x

  • container ์‹คํ–‰

docker run -d -name mโ€”redis -p 6379:6379 --network m-network --privileged=true -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data redis:6.0.3 redis-server /etc/redis/redis.conf
  • -d: detached mode๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
  • -p: host์™€ container์˜ port๋ฅผ ๋งคํ•‘ :
  • -h: container host name
  • โ€”-network: container๊ฐ€ ์‚ฌ์šฉ ํ•  ๋„คํŠธ์›Œํฌ ์ง€์ •, ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ์ง€์ •ํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋„คํŠธ์›Œํฌ ๊ฐ€๋Šฅํ•˜๋‹ค
  • --name: container ์ด๋ฆ„์„ ์ง€์ •
  • โ€”-privileged: true๋ฉด ์ปจํ…Œ์ด๋„ˆ์˜ root์‚ฌ์šฉ์ž์—๊ฒŒ root ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋˜์–ด ์ปจํ…Œ์ด๋„ˆ์—์„œ host ์ž์›์„ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • -v: host์™€ volumn์„ ๊ณต์œ  {host directory}:{contaier-dir}

ํ•˜์œ„ ๋ช…๋ น์–ด๋กœ ๋กœ๊ทธ ํ™•์ธํ•œ๋‹ค.

docker logs -f fudy-redis


Docker Compose

Docker Compose๋Š” multi-container Docker ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋‹ค. ๋งŽ์€ ์–‘์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋Œ€์‹  yaml ํŒŒ์ผ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ์ปค๋งจ๋“œ ๋ผ์ธ ๋„๊ตฌ๋กœ ์‹œ์ž‘, ์ •์ง€, ์žฌ๋ถ€ํŒ…, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…์„ ํฌํ•จํ•˜์—ฌ multi-container๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Docker Compose๋ฅผ ํ†ตํ•œ Redis ์„ค์น˜ ๊ณผ์ •์€ ํ•˜์œ„์™€ ๊ฐ™๋‹ค.

  • /docker/compose.ymlํŒŒ์ผ์— ํ•˜์œ„ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
version: '3.5'
services:
  redis:
    image: redis:6.0.3
    container_name: m-redis
    ports:
      - 6379:6379
    networks:
      - m-network
    volumes:
      - /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf
      - /opt/docker/redis/data:/data
    command:
      /bin/bash -c "redis-server /etc/redis/redis.conf"
networks:
  fudy-network:
    external: true

  • ํ•˜์œ„ ๋ช…๋ น์–ด๋กœ redis container๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

docker-compose -f /opt/docker/compose.yaml up -d

compose.yaml ์ž‘์„ฑ ๊ฐ€์ด๋“œ๋ผ์ธ๋Š” ํ•˜์œ„๋ฅผ ๊ณตํ™ˆ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

Compose file ์ž‘์„ฑ ๊ฐ€์ด๋“œ๋ผ์ธ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ