Docker

박경희·2023년 10월 11일
0

강의 복습 및 정리

목록 보기
28/28
post-thumbnail

Docker 맛보기1

도커를 깔아보자

맥은 오른쪽에 다운을 누르면 금방 다운되고
윈도우는 해당하는 버전으로 다운 받아야 한다.
다소 시간이 걸리고 설치가 완료되면 여부를 묻지 않고 바로 재부팅이 된다.

다운로드가 되는동안 도커허브 가입해보자~


도커 다운된 후 첫 화면

finish -> sign in

터미널

  • docker 치면 명령어가 나온다.
  • docker -v 버전도 살펴보자.

터미널에서 docker run nginx 를 입력해보자.

docker에서 Containers를 들어가보면 nginx가 실행되고 있는것을 볼 수 있다.
이름은 따로 설정하지 않으면 랜덤으로 나온다.

containers의 priceless_ri 삭제.

images

컨테이너에 있는것을 지워도 이미지는 남아있다.

Actions의 ▶(run)를 눌러보자.

포트에 80을 넣고 run -> nginx 80을 내 80에 연결해서 쓰겠다는 것이다.

이제 localhost로 접속해보면 nginx에 접속된 것을 확인할 수 있다.

같은 방식으로 포트에 81을 넣고 run을 하면 81포트로도 접속할 수 있다.

nginx를 깔지 않았는데 사용할 수 있다 -> 이미지로 관리하는 것을 사용하는 것.


Docker 맛보기2

https://hub.docker.com/_/nginx 참고해보자.

터미널에서 docker pull nginx를 사용

➡️ 도커라는 다운로드 폴더에 nginx iso 라는 이미지박스가 생긴것이다.그냥 다운로드만 한것.

NGINX

docker run --name nginx nginx (실행)
➡️ 앞에는 이름, 뒤에는 img. nginx라는 이미지를 nginx라는 이름으로 만들겠다는 것.


컨테이너를 보면 돌아가고 있다. nginx라는 컴퓨터가 돌고있는 것이다.

localhos에 접속해보려 하지만 접속이 되지 않는다. nginx라는 컴퓨터가 따로 돌아가고 있는 것이기 떄문.

이제 내 컴퓨터에서도 여기에 접속할 수 이게 해보자.

docker run --name nginx -p 8080 nginx
-> 이름 nginx 포트 내꺼 8080으로 주고 이미지는 nginx를 쓰겠다. (이미지 파일 80 을 내꺼 8080에 엮는것이다)


이제 내 로컬에서 접속이 된다.

docker rm nginx1 하면 docker에서 바로 삭제되나 이미지는 삭제되지 않는다.

이미지 지우기 => docker rmi nginx

docker run nginx 이렇게하면 Unable to find image 'nginx:latest' locally 이렇게 이미지가 없다고 하면서
이미지를 먼저 다운 받고 컨테이너에서 실행된다.

MySQL



이렇게 보면 pull로 다운할 수 있다고 뜬다.
그럼 docker run mysql 을 하면 다운받고 실행을 하겠죠~?
➡️ 먼저 내꺼에서 이미지를 찾고 없으면 도커허브에서 찾아서 다운로드를 받아 내 이미지에 넣고 실행을 한다.

이렇게 뜬다. -> 뭔가 옵션을 줘야한다. --> 환경변수를줘야함.

run 누르고


3306은 쓰고있으니까 3307로 포트번호, MYSQL_ROOT_PASSWORD 넣고 비번 넣기.

마이에스큐엘에서 접속해보니 잘 된다.

  • 이렇게하면 연결을 1분이면 된다.
  • mysql을 따로 만들 땐 오래걸렸는데 이렇게 하니 아주 빠르다.
  • 이러니 도커를 안쓸 이유가 없는것.

터미널에서~

docker run --name mysql1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql

✅ 이름은 mysql1 내포트는 3308:mysql은 3306을 주고 환경변수 e 에 번호넣기. 마지막에는 img를 넣어준다.

근데 이렇게 돌리면 터미널을 먹으니까 터미널을 끄자. 컨트롤 c해도 잘 안꺼진다.. 꺼지긴 하는데 촘 걸린다. => 그냥 도커에서 멈추는게 더 빠른 것 같다:)

docker run --name mysql1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql

✅ 이미지 앞에 -d를 주면 터미널을 먹지 않고 백그라은같은걸로 실행이 된다.


mongoDB

확인을 해보고~

복사해서 pull대신 run

docker run --name mongodb -p 2000:27017 mongodb/mongodb-community-server


인텔리제이에서 잘 열리나 확인해보자.

➡️ 몽고를 깔지 않았는데도 이렇게 성공하는걸 볼 수 있다. 그러니 도커를 안쓸 이유가 없는 것.
✅ 굉장히 편하고 간단하다.


컨테이너를 삭제하면 데이터가 모두 날아간다. 내 로컬에 저장해 보자.
-v 라는 옵션을 줘보자.

docker run --name mysql2 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=1234 -v 저장할 경로:/var/lib.mysql -d mysql 

0개의 댓글