본문 바로가기
devops/Docker 강좌📌인프런

생활코딩 도커 강좌 #1 - 기본

by IMSfromSeoul 2022. 2. 3.

📌 도입

운영체제가 설치된 환경을 주인이라는 뜻에서 host

host에서 실행되는 각각의 분리된 환경을 container라고 하자.

 

각각의 컨테이너에는 운영체제 전체가 설치돼 있는 것이 아니고, 앱을 실행하는데 필요한 라이브러리와 실행 파일들만 포함돼 있다.

📌 image pull

https://hub.docker.com/

  • dockerhub에 들어가서 httpd 입력

▸ 도커 공식문서

  • docker pull httpd

📌 실습

  • docker run httpd

  • docker ps

  • docker run --name ws2 httpd
    • 이름 주기

  • docker ps -a를 하면 실행했던 모든 컨테이너가 뜨게 된다.
  • docker start ws2

  • 그런데 이렇게 하면 로그가 출력이 안된다.
  • docker logs ws2

  • 이렇게 하면 log가 출력되는데, 그냥 나가버린다.
  • 실시간으로 출력하고 싶다면 docker logs -f ws2 하면 된다.
  • 실행중인 컨테이너는 삭제가 안된다
    • stop 하고 지우던가, 
    • docker rm --force [컨테이너 이름] 으로 지워야 한다.
  • docker images
  • 이미지 삭제
    • docker rmi [이미지 이름]

📌 네트워크

  • docker run --name ws4 -p 8081:80 httpd

📌 명령어 실행

  • docker exec ws4 ls
    • 한 번씩 명령어를 전달할 수 있다.
  • docker exec -it ws4 /bin/sh
    • -it + shell 을 주면 안에서 입력어를 입력해줄 수 있다.
    • 나가려면 exit을 입력하자.
  • bin-shell은 기능이 많이 부족하다.
    • /bin/bash 를 사용하자.
    • 환경에 따라 bash shell 이 없을 수도 있다.
    • 이때는 bin shell을 사용하자.

▸  공식문서

  • docker exec -it ws4 /bin/bash
  • 공식문서에 있는 index.html 위치 cd /usr/local/apache2/htdocs/ 로 이동
  • nano 에디터가 없기 때문에
    • apt update
    • apt install nano
  • 수정하고 저장하고 나오면 텍스트가 바껴있다.

📌 호스트와 컨테니어 파일 시스템 연결

  • docker run -p 8888:80 -v /Users/ims/Desktop/codes/docker-practice:/usr/local/apache2/htdocs/ httpd

댓글