philo0407 2021. 4. 5. 22:54

 

Docker 반가상화 기술..

개발환경 셋팅을 편리하게 도와준다.

 

리눅스의 컨테이너 기술을 활용한다.

논리적으로는 가상화처럼

물리적으로는 거의 Real Machine (VM이 아닌)이다. -- 그냥 기존의 자원을 활용해서 쓰는 정도이다.

 

도커 설치

sudo wget -qO- https://get.docker.com/ | sh

 

현 사용자를 도커 그룹으로 편성

sudo usermod -aG docker [사용자ID]

 

docker version

-입력시 permission denied 뜨면.. 재로그인

 

자신이 선호하는 패키지 관리자가 설치된 이미를 가져오자

 

docker images

 

docker도 git과 마찬가지로 push pull이 있다.

docker와 dock-hub가 있음.

 

docker pull ubuntu:14.04

 

docker images

 

docker  search ubuntu | less

 

이미지: 실행파일 + 라이브러리

 

컨테이너 : 이미지를 실행한 상태 (프로세스)

 

우분투 컨테이너 생성하는 동시에 시작하자

docker run -i -t ubuntu:14.04 /bin/bash

위 명령어로 들어오면 자신의 리눅스가 아니라

docker로 인한 환경 안으로 들어온 것이다.

 

 

i 는. .  사용자가 입출력 intercative

t 는 sudo dty 가상 환경을 에뮬해주겟다.

 

ps ax

-- 프로세스확인

 

git설치

apt-get install git

 

apt-get install update

 

git설치하면 요 컨테이너 안에서만 사용할 수 있다.

 

docker도 ps 명령이 있다.

docker ps

docker ps -a

--를 하면... 이력도 보여준다.

 

 

다시 실행

docker start zen_clarke

우리가 도커를 띄울 때 이름을 지정하지 않았기 때문에 랜덤한 이름이 지정되어서 나오나다.

혹은.. 이름대신에 컨테이너 ID를 사용해도 된다.

 

명령어 입력후 이름이 표시된 것을 보면.. docker를 실행한 것이다.

그러나 아직 도커 안으로는 안 들어간 것임.

 

run 실행 동시에 들어감

start 실행만

 

docker attach zen_clarke

엔터 두번

 

ctrl+p, ctrl+q 로.. 빠져나올 수 있다. (도커가 중지되는 건 아니다.)

도커가 아닌 셸, bash의 단축키

 

docker stop zen_clarke - 도커 종료

 

docker rm zen_clarke - 도커 컨테이너 제거  (docker ps -a 로 확인 가능)

docker rmi hello-world - image 제거

 

docker의 이미지 하나로 여러개의 컨테이너 실행 가능함

 

컨테이너에 무언가를 설치했다고 해서 그 컨테이너의 이미지가 변경되지는 않는다.

 

하지만 해당 컨테이너를 기반으로 새로운 이미지를 만들 수 있다.

 

docker pull nginx:latest  (최신버전, nginx가 설치된 이미지를 받아와서 컨테이너에서 실행 )

 

아까 설치된 ubuntu와는 다르게.. nginx 전용으로 가져온 것...

이곳에 ubuntu를 설치하거나 하려면.. 까다롭다.

 

 차라리 ubuntu 위에서 nginx를 설치하는 게 더 나을 수도 있다.

 

docker run -d --name hello-nginx nginx:latest

 

만일.. 누군가가 80번 포트를 사용한다면

docker run -d --name hello-nginx -p 8000:80 nginx:latest  (호스트:컨테이너포트 - 로 연결하겠다.)

 

외부에서 내컴 포트 8000으로 접속했을떄 포트 80으로 포트포워딩하겠다.

 

docker run -i -t --name hello ubuntu:14.04 /bin/bash

 

docker exec hello echo 1

도커 컨테이너로 출력한 것

 

docker exec hello touch  /hello.txt

 

docs.docker.com/ci-cd/best-practices/

 

Best practices for using Docker Hub for CI/CD

 

docs.docker.com

pyrasis.com/docker.html

 

가장 빨리 만나는 Docker - 목차

 

pyrasis.com