install
Docker for MAC
<문제점>
개발을 하거나 서버를 운용할때 DB, tomcat, JDK등 여러가지 응용프로그램을 설치하고 사용한다.
그런데 기껏 설치한 프로그램 실행환경이 깨지는일은 빈번하게 발생한다.
프로그램을 쓰려고 환경구축을 했지만, 프로그램이 업데이트 되는경우 설치한 버전이 맞지않아 호환성이 떨어진다. 업데이트된 프로그램에 맞게 환경설정을 따로 해줘야하는 문제점이 발생한다.
도커를 사용하게되면 특정 버전에 맞춰서 구성해놓은 환경설정을 째로 snapshot 형태로 만들어준다.
그렇다 보니 미리 구성해놨던 환경을 어디서나 100% 동일하게 맞출 수 있게 된다.
특히 도커가 가지고 있는 컨테이너 기술이 있다. 모델하우스에 컨테이너를 설치하면 외부와 내부가 분리되어있고 미리 구성된 컨테이너들을 찍어낼 수 있다. 붕어빵 틀처럼. 도커가 각 컨테이너 간에 간섭이 불가능한 독립된 환경을 만들어주고 미리 정의해 놓은 컨테이너를 얼마든지 만들 수 있게 도와준다.
docker images
Image list
Docker이미지리스트
도커에서 공식으로 제공하는 이미지들도 있고, 인증된 단체에서 제공하는 이미지들도 있고 개인이 직접 커스텀해서 올려놓은 이미지들도 있다.
Ubuntu(우분투는 리눅스에 입문하기엔 가장 무난한 리눅스 배포판)을 검색하게되면, 우분투 옆에 뭔가 초록색 훈장모양 마크를 볼 수 있는데, 이 마크가 도커에서 공식적으로 제공하는 이미지라는 뜻이다. 저 마크가 붙은 이미지를 받는다면 이상한 문제가 일어날 가능성은 극히 낮음을 의미한다. (예를 들면 이상한 해킹툴이 심어져 있다던가 하는..)
docker pull ubuntu
docker images
docker pull ubuntu
docker pull ubuntu:22.04
docker images
테그 지정해서 가져오기 : docker pull <이미지 이름>:<태그 이름>
Docker이미지리스트
Supported tags and respective Dockerfile links 여기에 해당 이미지에서 주로 사용할 수 있는 태그들이 모여있다. 찾을 수 없으면 Overview 탭 바로 옆에 Tags라는 탭에서 찾으면 된다.
이미지를 이용해서 컨테이너 만들기: docker run <이미지 이름>:<태그이름>
단 latest 태그는 생략이 가능하다.
docker run ubuntu
docker ps
실행중인 컨테이너를 확인하려고 했을때 아무것도 생성이 안되어 있다.
docker container ls -a
실행은 안되었는데 생성은 되어있네? 이유는 : docker run을 이용해서 실행시켰을 때 기본적으로 실행이 완료되면 그냥 꺼져버린다. docker run ubuntu 를 입력해서 실행이 되자마자 동작이 완료되고 그대로 꺼져버려서 docker ps를 아무리 해도 안나타나고 docker container ls -a로만 볼 수 있었던거임.
docker container rm <NAMES>
아무 역할을 못한는 컨테이너는 지워도 ㄱㅊ.
안꺼지고 동작하는 컨테이너 만들기: docker run -it <이미지 이름>
-it 라는 플래그를 주면 된다.
docker run -it ubuntu
그냥 동작중인 컨테이너를 띄워놓고 우리는 다른 일도 하고 싶은뎅?
글고 계속 컨테이너 내부에만 있으면 다른 컨테이너는 관리는 어케해?
가동중인 컨테이너 만들기: docker run -it -d <이미지 이름>:<태그 이름>
docker run -it -d ubuntu
docker ps
실행중인 컨테이너 종료하는법 :docker stop <이미지 이름>
뭔가 이유가 생겨서 저 컨테이너를 재실행 할때: docker start <이미지 이름>
그런데 docker run을 이용해서 컨테이너를 만들면 이름이 자동으로 셋팅되는걸 확인할 수 있다.
내 이름은 Jiho 인데 우리 집에 붙여진 이름은 내 이름이 아니라 "Willam Smith의 집" 뭐 이런..?
이런 일을 방지하려면 컨테이너에 내가 원하는 이름을 붙일 수 있어야 한다.
컨테이너 이름 생성 :docker run -it -d --name <내가 원하는 컨테이너 이름> <이미지 이름>:<태그 이름>
docker run -it -d --name heewon ubuntu
뭐 이런식!