컨테이너 가상화를 구현하기 위한 기술
시작하기
docker container run -d -p 80:80 docker/getting-started
image 확인하기
docker image ls
docker container ls
docker ps
docker container ls -a
docker image pull <image 네임>
container 실행하기
docker container start <컨테이너 id>
container 중지하기
docker container stop <컨테이너 id>
container 삭제
docker container rm <컨테이너 id>
이미지 다운 & 컨테이너 실행
docker container run <image>
이미지 압축파일 저장 & load
$ docker save image > xxx.tar
$ docker load xxx.tar
docker container run -it ubuntu:16.04 /bin/bash
docker container run --rm -it ubuntu:16.04 /bin/bash
MySQL 실행
docker container run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
docker container exec -it mysql /bin/bash
mysql -h127.0.0.1 -uroot -p
docker container exec -it mysql /bin/bash -c mysql -h172.0.0.1 -uroot -p
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> .
결과 값은 같다
expose 8080
curl -X GET http;//<주소>
docker run -p 8080:8080 -d mynodejs
docker login
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
docker run -d -p 13306:3306 --network my-network --name mysql_server 1yangsh/mymysql:latest
docker run -d -p 8000:8000 --network my-network --name mybookmark_app 1yangsh/mydjango:latest