Docker
Linux 기능을 이용한 툴이지만, Windows와 Mac OS에서도 Docker Desktop for Windows or Docker Desktop for Mac 를 설치하려 사용 가능
도커는 하나의 실행파일이지만 실제로 클라이언트와 서버역할을 각각 할 수 있다.
도커 커맨드를 입력하면 도커 클라이언트(Client)가 도커 서버(Server)로 명령을 전송하고 결과를 받아 터미널에 출력
Docker Desktop for Windows
hub.docker.com/editions/community/docker-ce-desktop-windows
Ubuntu Linux에 설치하기
phoenixnap.com/kb/how-to-install-docker-on-ubuntu-18-04
1. Software의 local database를 최신 버전으로 갱신
$ sudo apt-get update
2. 이전 버전의 docker가 설치되어 있다면 제거 (권장 사항)
$ sudo apt-get remove docker docker-engine docker.io
3. Docker 설치
$ sudo apt install docker.io
$ curl -fsSL https://get.docker.com/ | sudo sh
4. 시작 시 docker가 동작하도록 설정
$ sudo systemctl start docker
$ sudo systemctl enable docker
5. Docker 버전 확인
$ docker --version
docker는 기본적으로 root권한이 필요함
root가 아닌 사용자가 sudo없이 사용하려면, 해당 사용자를 docker그룹에 추가하면 됨
사용자를 docker group에 추가하는 명령
1. 로그인 한 계정에 docker 그룹을 추가해 준다.
$ sudo usermod -a -G docker $USER # 현재 접속중인 사용자에게 권한주기
$ sudo usermod -a -G docker your-user # your-user 사용자에게 권한주기
2. docker 서비스를 재시작 해준다.
$ sudo service docker restart
3. 로그아웃 후 로그인 하여 정상 동작 하는지 확인한다.
터미널 에뮬레이터
Docker가 Linux 환경에서 동작하므로 Windows 환경에서 Docker가 구동하는
머신에 액세스할 때에는 터미널 에뮬레이터를 통해 로그인 가능
Putty 혹은 Xshell 사용
Docker 명령어 형식
-d, -p, -v, -name, -rm, -it 많이 쓰임
Ex) ubuntu 이미지를 베이스로 Docker 컨테이너를 생성 및 실행하여, “Hello world”를 출력
$ sudo docker run ubuntu:latest /bin/echo 'hello world' ===> 도커 이미지
ubuntu:latest 리눅스 최신 버전이라는 뜻으로 버전- ubuntu:latest 는 ubuntu 이미지의 최신 버전을 의미하며,
다운로드가 완료되면 컨테이너가 실행되고, linux의 echo 명령이 실행된다
로컬 환경에 다운로드한 이미지를 로컬 캐시라 함
리눅스에서 echo는 화면에 텍스트를 출력하는 명령어이다.
/bin/echo의 의미는 bin 디렉토리안에 echo 명령어가 존재하기 때문에 일부로 써준 것이고 그냥 echo만 해줘도 정상적으로 실행된다.
사용자를 docker run에 등록 안시켰기 때문에 sudo를 사용한다. 하지만 $ sudo usermod -a -G docker $USER 를 해주었기 때문에
위의 사진 처럼 sudo를 안붙이고 할 수 있다.
ubuntu 16.04 컨테이너를 생성하고, 컨테이너 내부로 들어간다.
$ docker run ubuntu:16.04
$ docker run ubuntu:latest
명령어가 전달되지 않아서, 컨테이너는 생성하자 말 자 종료
컨테이너는 프로세스 이므로 실행중 인 프로세스가 없으면 컨테이너는 종료
$ docker run --rm -it ubuntu:16.04 /bin/bash
--rm은 수행 후 container 자동 삭제
-it은 키보드 입력
컨테이너 내부로 들 어가기 위해 Bash 쉘을 실행하고, 키보드 입력을 위해 –it 옵션을 줌
프로세스가 종료 되면, 컨테이너가 자동으로 삭제되도록 Exit로 bash 쉘을 종료하면, 컨테이너도 같이 종료 --rm
컨테이너 내부 (#: root 프롬프트)로 들어간 모습을 볼 수 있다
$ ===> #
레디스(Redis : Remote Dictionary Server)
"키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)
Container 목록 확인 명령 (ps)
$ docker ps
$ docker ps -a
-a는 종료된 컨테이너를 보여준다
Container 중지하기
$ docker stop $[ID]
Container 삭제하기
$ docker rm $[ID] $[ID_2]
Container log 확인하기
$ docker logs $ [container_ID]
이미지 목록 확인하기
$ docker images
이미지 다운로드 하기
$ docker pull [name]
Ex) $ docker pull ubuntu:18.04
Docker 이미지 삭제하기
$ docker rmi $ [image ID]
Container 명령어 실행하기
$ docker run # images에서 docker를 실행시킨 것
$ docker exec # 실행중인 컨테이너에 들어가보거나 컨테이너의 파일을 실행하고 싶을 때
run은 새로 컨테이너를 만들어서 실행하고,
exec는 실행중인 컨테이너에 명령어를 내리는 정도입니다.
'수업정리 > Linux' 카테고리의 다른 글
GCC, G++, make 설치 (0) | 2020.09.28 |
---|---|
Docker 시스템 이해 (0) | 2020.09.15 |
vi (vim)편집기 기본 사용법 및 주요 명령어 (0) | 2020.09.15 |
GNU Nano Editor의 기본 사용법 (2) | 2020.09.15 |
기본 리눅스 명령(Part 1) (0) | 2020.09.10 |