본문 바로가기
🌴 DevOps/Docker & K8s

[Docker2] Docker 설치 및 이미지(ubuntu/nginx/mysql) 실행하기

by 카프리썬_ 2020. 4. 30.
728x90

1. 테스트환경 

os : aws의 Ubuntu 18.04.4 LTS 

 

2. docker 설치

sudo apt-get update

sudo apt-get install docker.io

3. docker 설치 확인

docker --version

3. hello-world 컨테이너 실행하기

docker에서 컨테이너 애플리케이션을 실행하는 방법

1) Pull : 이미지 가져오기 (캐시 또는 remote repository 에서)

2) Create : 이미지 빌드해서 컨테이너 생성

3) Start : 이미지 실행하기

이 3가지를 한번에 수행하는 명령어 : docker run hello-world

 

처음 run 할때만 나타는 이미지 빌드 history

locally에서 hello-world 이미지를 찾지 못했지만,

library/hello-world에서 찾아서 pulling을 한다. (docker 이미지를 다운받아서 로드한다)

 

처음 run 할때만 pulling한 이후 결과

다시 같은 명령어를 한번 더 수행하면

다시 한번 run할때 pulling hisrory 생략

앞에 이미지를 pulling한 history가 생략되고 바로 docker 이미지가 빌드 됨

바로 로컬환경에 이미지를 캐싱해두고 있기 때문에

 

 

 

 

4. 도커 실행명령어(RUN)

docker run [OPTIONS] IMAGE[:TAG|@DIGEST\ [COMMAND] [ARG..]

옵션[OPTIONS]

-d : detached mode 백그라운드 모드

-p : 호스트와 컨테이너의 포트 연결 (포워딩)

-v : 호스트와 컨테이너의 디렉토리 연결(마운트)

-e : 컨테이너 내에서 사용할 환경변수 설정

-name : 컨테이너 이름설정

-rm : 프로세스 종료시 컨테이너 자동제거

-it : 터미널 입력옵션

-link : 컨테이너 연결

 

이미지[IMAGE]

이미지명

 

4-1. 예시1) ubuntu 컨테이너 실행하기

docker run unbuntu:16.04

ubntu 컨테이너 실행하기

이미지명 : ubuntu:16.04

local이 아니라 library에 있는 우분투이미지를 가지고 컨테이너 환경 실행함

대신 명령어가 없어서 그냥 이미지가지고 컨테이너 만들기만 하고 끝남

 

docker run --rm -it ubuntu:16.04 /bin/bash

옵션

rm : 프로세스 종료시 컨테이너도 종료한다

it : 이미지를 가지고 실행한 컨테이너의 터미널에 접근한다

이미지명 : ubuntu:16.04

명령어

/bin/bash : bash 쉘에 접근한다

명령어 수행결과

 

exit로 bash쉘 종료하면 컨테이너도 같이 종료

이렇게 도커 이미지 파일이 있기 때문에 따로 설치 없이 하나의 컨테이너 환경을 구성할 수 있음

 

 

 

 

4-2. 예시2) nginx 컨테이너 실행하기

docker run --name tutorial-nginx -p 8080:80 nginx

옵션

name : docker이미지명 지정

p : docker내부의 포트와 연결할 로컬포트 지정 (로컬이랑 연결할 포트 : 내부에서 연결할 포트)

nginx는 내부에서 기본적을 80포트랑 연결하는데, 
로컬에서는 8080포트랑 연결하기 위해서 매핑

이미지명 : nginx

<수행결과>

컨테이너 안에 nginx라는 어플리케이션을 실행하게 되서 접속가능

다만, 보안그룹으로 8080 포트가 열려있어야함

 

 

4-3. 예시3) mysql 컨테이너 실행하기

docker run -d -p 3306:3306  -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql: 5.7

옵션

d :백그라운드 모드로 실행

p : 원래도 mysql은 3306 포트랑 연결되는데 내가 사용하는 포트도 3306으로 이 둘을 연결한다

e : mysql컨테이너 내부에서 사용할 환경변수 설정 (환경변수 참고 : https://hub.docker.com/_/mysql/)

사용한 환경변수 mysql_allow_empty_password : 패스워드 없이 root계정 만든다 

name : docker이미지명 지정

이미지명

mysql:5.7

<수행결과>

컨테이너 안에 mysql라는 어플리케이션을 실행하게 되서 접속가능

다만, 보안그룹으로 3306 포트가 열려있어야함

다만, mysql client가 사전에 설치되어 있어야함 (apt install mysql-client-core-5.7)

 

 

출처 https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
출처: https://evir.tistory.com/entry/Kubernetes-AWS에-Kubernetes-설치하기

 

초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기

초보를 위한 도커 안내서 2번째 글입니다. 도커의 기본적인 내용을 이야기 했던 첫번째 글에 이어 실제로 도커를 설치하고 컨테이너를 실행하면서 도커 명령어를 알아봅니다. 도커를 처음 접하는 분들을 위해 아주 가볍게 자주 쓰는 명령어를 다루었습니다.

subicura.com

 

[Kubernetes] AWS에 Kubernetes 설치하기

https://kubernetes.io/ Kubernetes 관련 자료는 위 링크에 있습니다.(공식사이트) Kubernetes를 설치하고 테스트 하는 것이 이번 포스팅의 목표입니다. AWS EC2 Ubuntu 16.04 LTS를 이용해 설치 했습니다. 1. 우..

evir.tistory.com

 

 

반응형