Docker & AWS & Jenkins 03

김수민·2020년 3월 22일
0

도커(Docker) 활용 및 배포 자동화 실전 초급 ③ AWS EC2에 도커(Docker) 설치 및 Dockerfile로 웹 서버 구동시키기

<script src="https://gist.github.com/tn841/5d670fdb3174408a33583f7228cdac08.js"></script>

3강부터 본격적으로 docker를 다룬다.

바로 본론 부터 들어간다.

+20200323
: centos 환경에서 mysql container 띄울시 오류가난다. ubuntu 환경에서 docker를 설치하는 방법은 아래 링크를 참조.

https://docs.docker.com/install/linux/docker-ce/ubuntu/#prerequisites


apt-transport-https

docker를 정상적으로 구동하기위해 사전 작업이 필요한것 같다.
yum 에서는 어떻게 해야하는지..?

https://docs.docker.com/install/linux/docker-ce/centos/

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

이제 docker를 설치하자.

sudo yum install docker-ce

repository가 없다? 라는 오류가 뜬다. 구글링 하자.

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

sudo dnf repolist -v

sudo dnf install docker-ce-3:18.09.1-3.el7	# 최신버전에 문제가 있어서 특정 예전 버전으로 설치해야한다는 거 같다.

직접 service에 등록 하자.

sudo systemctl status docekr 

disabled 되어 있다.

sudo systemctl enable docker
sudo systemctl start docker

  • activate 되었다! jupyer service 등록한거 바로 써먹기

Docker hello-world image 다운

docker pull hello-world


permission denied오류 -> sudo를 붙이니 잘된다. ubuntu는 그냥 되던데

구글링을 통해 아래와 같이 해결했다.

docker가 다른 유저 및 유저 그룹에 속해 있는 파일들에 접근할 수 없어서 발생하는 문제로, 기본적으로 다음과 같이 해결이 가능하다.

 

(1) docker 그룹 생성

$sudo groupadd docker

 

(2) 다른 유저를 docker 그룹에 넣어준다.

$sudo usermod -aG docker <유저명>


(3) 재접하면 된다는데 안될경우 아래 명령어 실행
$ newgrp docker

출처: https://marshallslee.tistory.com/entry/CentOS에서-docker-실행-시-permission-denied가-발생하는-경우 [Astronaut's Note]

Dockerfile 작성

  • ubuntu:14.04
  • apahce2

Docker build

Docker run -p 80 example

컨테이너에서 위에서 방금 만든 Docker Image가 실행된다.
ubunt에서 apache 서버가 실행되고 EC2의 80포트와 컨테이너의 80포트가 연결된다.
실제로 접속하기 위해서는 AWS inbound 규칙에 80포트를 열어줘야 한다.

profile
python developer

0개의 댓글