티스토리 뷰

해피 코딩

Docker 처음 사용하기

Broca & Wernicke 2019. 12. 2. 13:38

Docker가 무엇인가?

리눅스 컨테이너 기술을 기반으로 만든 오픈소스 소프트웨어 플랫폼

 

Container가 무엇인가?

리눅스에서 cgroup과 namespace 기술을 이용하여 만든 프로세스 격리 기술

 

Docker 설치

?

 

Docker 서비스 시작

systemctl enable docker

systemctl start docker

 

Docker 기본 명령어

# docker 정보 확인

docker info

 

# container 확인

docker ps -a

 

# container 실행

docker run hello-world

docker run -it ubuntu bash

 

# docker image 목록

docker images

 

# docker registry에서 image 가져오기

docker pull <name>

 

# docker registry로 image 올리기

docker push <name>

 

# container image에 tag 붙이기

docker tag <source_name> <target_tag_name>

 

# container 제거

docker rm <container_id>

(container_id는 "docker ps -a"로부터 얻을 수 있다.)

 

# container image 삭제

docker rmi <image_name>

 

Docker 사용

# Web service 실행하기

docker pull httpd

(docker images 명령으로 image가 local에 download 됐는지 확인)

docker run httpd

 

# docker를 background로 실행

docker run -d httpd

("docker ps -a"로 실행 확인)

 

# network 연결

docker run -d -p 80:80 httpd

(확인: curl localhost 또는 web browser)

 

웹 페이지 내용 변경은 어디서 할까?

local machine or container?

 

# container shell 접속

docker exec -ti <container_id> /bin/bash

(root@<container_id>:# cd /usr/local/apache2/htdocs; echo "<html><body><h1>Docker container test</h1></body></html>" > index.html; exit;)

(curl localhost)

 

Docker build

sample "Dockerfile"

# registry에서 image를 가져온다.
FROM httpd:latest
MAINTAINER sangkyu <sangkyu@kakao.com>

# container 부팅 후 실행하는 명령
RUN echo "<html><body><h1>Docker container test</h1></body></html>

# host에 연결하는 포트
EXPOSE 80

# docker image build

docker build -t myhttpd .

(docker images로 확인)

docker run -d -p 80:80 --name=myweb myhttpd

(docker ps; curl localhost;로 확인)

 

Docker 통합 관리

# docker-compose 설치

?

 

# sample docker-compose.yml

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - /var/lib/mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: passwordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

    wordpress:
      depends_on:
        - db
      image: wordpress:latest
      ports:
        - "8000:80"
      restart: always
      environment:
        WORDPRESS_DB_HOST: db:3306
        WORDPRESS_DB_USER: wordpress
        WORDPRESS_DB_PASSWORD: wordpress

(원본: https://docs.docker.com/compose/overview) 

 

# 빌드 및 실행

docker-compose -f docker-compose.yml up -d

 

# 확인 

docker-compose ps

 

# Browser 접속

localhost:8000/wp-admin

 

 

'해피 코딩' 카테고리의 다른 글

파이썬 알고리즘 문제: Anagram  (0) 2021.01.15
[번역] 파이썬으로 테트리스 만들기  (0) 2020.07.12
Yocto project 소개  (1) 2019.12.27
Docker registry 처음 사용하기  (0) 2019.12.02
크롤링2  (0) 2019.08.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함