์ปจํ ์ด๋ ๊ฐ์ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๊ธฐ์
-
์์ํ๊ธฐ
- image ๋ค์ด, ์ปจํ ์ด๋ ์คํ
docker container run -d -p 80:80 docker/getting-started
-
image ํ์ธํ๊ธฐ
docker image ls
- container ํ์ธ
docker container ls
docker ps
- ์๋ ์ค์ธ ์ปจํ ์ด๋๋ง ๋ณด์ฌ์ค
docker container ls -a
- ๋ชจ๋ ์ปจํ ์ด๋ ๋ณด์ฌ์ค
- image ๋ค์ด๋ก๋
docker image pull <image ๋ค์>
-
container ์คํํ๊ธฐ
-
docker container start <์ปจํ ์ด๋ id>
-
container ์ค์งํ๊ธฐ
-
docker container stop <์ปจํ ์ด๋ id>
-
container ์ญ์
docker container rm <์ปจํ ์ด๋ id>
-
-
์ด๋ฏธ์ง ๋ค์ด & ์ปจํ ์ด๋ ์คํ
docker container run <image>
- Ubuntu ์ปจํ
์ด๋ ์คํ
- ํฐ๋ฏธ๋์ ์์ฑํด์ ์ฐ๋ถํฌ ์ปจํ
์ด๋ ์คํ
docker container run -it ubuntu:16.04 /bin/bash
- ์ปจํ
์ด๋ Stop์, ์ปจํ
์ด๋ ์ญ์ ์ต์
๊น์ง ์คํ
docker container run --rm -it ubuntu:16.04 /bin/bash
- ํฐ๋ฏธ๋์ ์์ฑํด์ ์ฐ๋ถํฌ ์ปจํ
์ด๋ ์คํ
-
MySQL ์คํ
- Mysql ์ปจํ
์ด๋ run
docker container run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
- -d = detached mode
- -p = port forwarding
- 3306(host) : 3306(container)
- -e = environment
- mysql ์ปจํ
์ด๋ ์คํ
docker container exec -it mysql /bin/bash
- ์ปจํ
์ด๋ ๋ด๋ถ์ mysql ์คํ
mysql -h127.0.0.1 -uroot -p
- bash ์ ์คํ + mysql ์คํ
docker container exec -it mysql /bin/bash -c mysql -h172.0.0.1 -uroot -p
- Mysql ์ปจํ
์ด๋ run
- ์ผ๊ด์ ์ธ ์ญ์ ๋ฐฉ๋ฒ (image, container, volume ๋ฑ)
docker system prune
- ์ปจํ
์ด๋ ์ญ์
docker container prune
- ์ด๋ฏธ์ง ์ญ์
docker image prune
-
Volume mount ์ง์
-
-v [Windows์ ๊ฒฝ๋ก]:[Container์ ๊ฒฝ๋ก]
- ์)
-v C:\Work\my_test:/mydata
docker run --volume D:\docker_volume:/var/lib/mysql -d -p 13306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
- ์)
-
Volume ํ์ธ
docker volume ls
-
docker ํ์ผ ์์ฑ
FROM ubuntu:latest // base ํ์ผ ์์ฑ
-
image ํ์ผ ์์ฑ
docker image build --tag fromtest:1.0 .
- =
docker build -t <name>:<tag> .
๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ๋ค
- CMD
- ํ๋ผ๋ฏธํฐ์ ์ํด ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฐ๋ณ ๋ฐ์ดํฐ
- Entrypoint
- ๊ณ ์ ์ ์ธ ๊ฐ์ ๋ฃ๊ณ ์ถ์ ๋
- ํฌํธํฌ์๋ฉ
- inbound๋ฅผ ์คํํ๋ค
expose 8080
- ๋ค๋ฅธ ์ปจํ
์ด๋์์ ์ ์ ๋ฐฉ๋ฒ(๋ฆฌ๋
์ค)
curl -X GET http;//<์ฃผ์>
- ์๋์ฐ(ํธ์คํธOS)์์ ์ ์ ๋ฐฉ๋ฒ (ํฌํธํฌ์๋ฉ)
docker run -p 8080:8080 -d mynodejs
- inbound๋ฅผ ์คํํ๋ค
- login
docker login
- image ์
๋ก๋
docker image push 1yangsh/mynodejs:1.0
-
docker network ls
- ๋คํธ์ํฌ ํ์ธ
-
docker network create <๋คํธ์ํฌ ์ด๋ฆ>
- ๋คํธ์ํฌ ์์ฑ
-
docker network connect <๋คํธ์ํฌ ์ด๋ฆ> <์ปจํ ์ด๋ id>
- ์ปจํ ์ด๋๋ฅผ ํด๋น ๋คํธ์ํฌ์ ์ฐ๊ฒฐ
-
docker network inspect <๋คํธ์ํฌ>
- ๋คํธ์ํฌ ์ ๋ณด ํ์ธ
์)
1. ์ปจํ
์ด๋ 2๊ฐ ์คํ / ๊ฐ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ
- mysql
- mynode
2. mynode์์ mysql์ ping ํ
์คํธ
- docker -it [container_id] /bin/sh
- ping 172.17.0.2
- ping mysql
- mysql ์คํ
docker run -d -p 13306:3306 --network my-network --name mysql_server 1yangsh/mymysql:latest
- django ์คํ
docker run -d -p 8000:8000 --network my-network --name mybookmark_app 1yangsh/mydjango:latest