Docker - 처음 Docker 접할때 오는 멘붕 몇가지
2021. 1. 18. 15:58
🚦 Server/Docker
Docker는 Virtual machine이 아니다! 처음 docker를 실행할 때 다음과 같은 명령을 실행하면 우분투 서버가 실행된다고 생각했다. 즉, Virtual machine과 같이 컨테이너 내에 우분투 서버가 실행되는 줄 알았다. $ docker run --name ubuntu_test ubuntu 위 명령을 실행하면 그냥 아무것도 실행하지 않은 것처럼 아무런 변화가 없다. 다만 다음과 같이 실행되지 않는 docker container를 보는 옵션(-a)을 주고 docker container의 목록을 보면 종료(Exit)되었다고 나타나기는 한다. $ docker ps -a d8f31b2635d9 ubuntu "/bin/bash" 19 seconds ago Exited (0) 17 seconds ..
Docker - tutorial
2021. 1. 18. 15:44
🚦 Server/Docker
docker run ubuntu:16.04 run명령어를 사용하면 사용할 이미지가 저장되어 있는지 확인하고 없다면 다운로드(pull)를 한 후 컨테이너를 생성(create)하고 시작(start) 합니다. 위 예제는 ubuntu:16.04 이미지를 다운받은 적이 없기 때문에 이미지를 다운로드 한 후 컨테이너가 실행되었습니다. 컨테이너는 정상적으로 실행됐지만 뭘 하라고 명령어를 전달하지 않았기 때문에 컨테이너는 생성되자마자 종료됩니다. 컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 컨테이너는 종료됩니다. 이번에는 /bin/bash 명령어를 입력해서 ubuntu:16.04 컨테이너를 실행해 보겠습니다. 컨테이너 내부에 들어가기 위해 bash 쉘을 실행하고 키보드 입력을 위해 -it 옵션을 줍니다. ..
Docker - Dockerhub에 image 올리기
2021. 1. 13. 17:54
🚦 Server/Docker
Dockerhub에 image 올리기 ➜ ~ docker run -it --name MyNginx ubuntu:latest repository 업데이트 하기 root@15164209bbdf:/# apt-get update nginx를 설치해보자 root@15164209bbdf:/# apt-get install nginx nginx가 설치된 것을 확인할 수 있다. $ root@15164209bbdf:/# which nginx >> /usr/sbin/nginx curl command 설치하기 root@15164209bbdf:/# apt-get install curl nginx landing page를 확인할 수 있다. root@15164209bbdf:/# service nginx start * Startin..
Docker - container 제거하기
2021. 1. 13. 16:43
🚦 Server/Docker
컨테이너 상대로 명령어 실행 실행 중인 컨테이너 상대로 명령어를 날리고 싶다면 docker exec 커맨드를 사용합니다. 예를 들어, 어떤 컨테이너를 상대로 ls 커맨드를 실행하고 싶다면 다음과 같이 하면 됩니다. -it 옵션을 사용하면 해당 컨테이너의 쉘(shell)과 작접 상호작용하면서 연속으로 명령어를 실행할 수 있습니다. -it 옵션 -i 옵션과 -t 옵션은 같이 쓰이는 경우가 매우 많은데요. 이 두 옵션은 컨테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용합니다. 따라서, -it 옵션은 특히 컨테이너의 쉘(shell)이나 CLI 도구를 사용할 때 매우 유용하게 사용됩니다. 컨테이너 제거 컨테이너를 제거하고 싶을 때는 docker rm 커맨드를 사용합니다. 중지..
Docker 로 python 실행하기
2021. 1. 8. 15:34
🚦 Server/Docker
docker-compose.yml 예제 version: '3' services: api: image: python:latest volumes: - ${proj_path}:/root/flask_api_demo working_dir: /root/flask_api_demo version : docker-compose.yml version을 정의합니다. yml 형식의 문법을 정의 합니다. services : docker container를 정의하는 부분입니다. 하나의 container를 하나의 service로 볼 수 있습니다. api : service 이름입니다. 예제에서는 api라는 이름의 service로 container를 구동하겠습니다. 임의로 service이름을 설정할 수 있습니다. image : doc..
Docker - image가 저장되는 방식
2021. 1. 8. 12:44
🚦 Server/Docker
Container 는 뜻 그대로 화물 수송용 박스를 생각하면 됩니다. container에 다양한 화물을 넣고 다양한 운송수단에 적재되어 쉽게 옮길 수 있는데 서버에서도 마찬가지입니다. 서버 실행에 필요한 모든 것(코드, 런타임, 시스템도구)들을 container에 넣어 쉽게 추상화하고 어디서에든(GCP, AWS, Local-machine) 실행할 수 있습니다. Docker image는 container의 모든 정보를 포함한 하나의 단위로 볼 수 있습니다. Docker 를 사용하는 이유는 container를 활용하여 쉽게 개발환경과 운영환경을 동일하게 구성할 수 있기 때문입니다. Docker container를 동시에 여러개를 생성하여 구동하려면 어떻게 해야 할까요? 하나씩 docker run 명령어를 치..
Docker - 라이프 사이클, 명령어
2021. 1. 7. 12:16
🚦 Server/Docker
Docker : Managing Containers Application 시작하기 docker run -d -p 80:80 docker/getting-started pull pull 명령어를 통해서 이미지를 다운로드한다. 이때 다운 받아진 이미지는 실행이 불가능하다. pull된 이미지를 실행을 하기 위해서는 Container를 만들어야 한다. create create 명령어를 통해서 컨테이너를 만들 수 있다. 실행시킬려면 start로 실행할 수 있고 메모리에서 실행되게 된다. run run 명령어를 통해 pull, create, start 3가지를 모두 이용할 수 있다. 만약 pull이 되어있는 이미지라면 run 명령어를 이용했을 때 pull이 다시 되진 않는다. create, start만 된다. 이미지..
Docker - image, docker file, docker hub
2021. 1. 7. 11:24
🚦 Server/Docker
목차 Docker Image Docker File Docker Hub & Docker Registry Docker Architecture 컨테이너는 가상화 기술 중 하나로 대표적으로 LXC(Linux Container)가 있다. 기존 OS를 가상화 시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어진다. Docker Image Docker Image란 컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것이라고 생각하면 된다. 그림과 같이 Image를 컨테이너에 담고 실행을 시킨다면 해당 프로세스가 동작하게 되는 것이다. 그럼 어떻게 이미지가 동작하는지 알기 위해선 어떻게 이미지가 만들어지는지 먼저 알아보도록 하자. 다음 그림을 보면 ubuntu 이미지..
Docker 설치 - Mac
2021. 1. 7. 10:54
🚦 Server/Docker
$ brew cask install docker 명령어로 설치하려면 오류가 날 것이다. brew cask 는 Homebrew 2.6.0에서 brew --cask를 선호하여 더 이상 사용되지 않는다. 이제 2.7.0이 출시되었기 때문에, brew cask 는 비활성화되었다. 그렇기 때문에 오류가 난다. home brew 유지 관리자들은 이 모듈과 아무런 관련이 없기 때문에, 이 문제를 해결할 수 있는 사람들에게 달려 있다. 비난 좀 받을만 하다... $ brew install --cask docker 이 명령어로 설치하시면 오류가 해결될 것이다. 이제 application에 docker가 있을 것이다. 이것을 한번 실행해줘야 /usr/local/bin에 도커 링크가 생기고 터미널에서 docker를 사용할 ..
Docker 란?
2021. 1. 6. 17:53
🚦 Server/Docker
Docker Docker는 Container를 만든다. 리눅스에서 논리적으로 나눌 수 있는 가상 인터페이스를 지원한다. Linux control 그룹을 사용해서 가상화 환경을 제공한다. cgroup docker가 윈도우에서 쓰일 때에는 hypervisor를 사용한다. 따라서 Docker는 윈도우즈보다 리눅스 환경에서 사용하는 것이 좋다. 가상화하여 자기만의 인터페이스를 가질 수 있다. VMware와 Docker의 성능의 차이 Docker를 사용했을 때 시간이 매우 절약 되는 것을 볼 수 있다. Container가 12개일 때 비교적 안정적인 모습을 보여주고 있다. 메모리의 사용량을 보면 메모리가 많이 남아있는 것을 확인할 수 있다. 모놀리식, 마이크로서비스 요즘에 나오는 규모있는 회사들은 메인 페이지의 ..