T아카데미 - 컨테이너 기반 가상화 플랫폼 ‘도커(Doker)’의 이해


컨테이너 실행하기

1. run commend

$ docker run [OPTION] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG....]

  * 옵션
    1. -d, 백그라운드 모드
    2. -p, 호스트와 컨테이너의 포트연결, 포워딩
    3. -v, 호스트와 컨테이너의 디렉토리 연결 , 마운
    4. -e, 컨테이너 내에서 사용할 환경변수 설정
    5. --name, 컨테이너 이름 설정
    6. --rm, 프로세스 종료 시 컨테이너 자동 제거
    7. -it, 터미널 입력을 위한 옵션
    8. --network, 네트워크 연결

    * run 명령어 사용 후,
      이미지가 있는지 확인 하고 없으면 다운로드 (pull), 컨테이너 생성 (create), 시작 (start) 한다.

2. /bin/sh

$ docker run --rm -it ubuntu:16.04 /bin/sh

    * --rm 옵션으로 인해 컨테이너가 종료되면 자동 삭제

4. Redis

$ docker run --name=redis -d -p 1234:6379 redis
$ docker run --rm -it mikesplain/telnet docker.for.win.localhost 1234

    - 메모리 기반의 다양한 기능을 가진 스토리지

 

5. Mysql

    - MYSQL_ALLOW_EMPTY_PASSWORD = YES 루트 패스워드 없이 접속 가능
    - exec 명령어를 이용하여 mysql 컨테이너로 직접 접속함.

6. WordPress

컨테이너 목록 확인하기

* ps
    - 실행중인 컨테이너 목록을 확인하는 명령어
      $ docker ps
      docker ps -a 중지된 컨테이너 포함

 

컨테이너 중지하기

* stop
    - 실행중인 컨테이너 중지
      $ docker stop [OPTION] CONTAINER [CONTAINER...]

 

컨테이너 제거하기

* rm
    - 종료된 컨테이너를 완전히 제거하는 명령어
      $ docker rm [OPTION] CONTIANER [COTAINER...]

컨테이너 로그보기

* logs
    - 컨테이너가 정상동작하는지 확인하는 명령어
      $ docker logs [OPTION] Container
      -f 옵션 , 새로 생성되는 로그 확인
      --tail 옵션

 

이미지 목록 확인하기

* images
    - 다운로드 받은 이미지 확인
      $ docker images

 

이미지 다운로드

* Pull
    - 이미지를 다운로드 하는 명령어
      $ docker pull [OPTION] NAME[:TAG|@DIGEST]
      최신버전으로 업데이트 하고 싶을 때 pull 명령어 사용

 

이미지 삭제

* rmi
    - 이미지 삭제
      $ docker rmi [OPTION] IMAGE [IMAGE ...]
      실행중인 이미지는 삭제 불가능함

 

네트워크 만들기

$ docker network create [OPTIONS] NETWORK
$ docker network create app-network
$ docker network connect [OPTIONS] NETWORK CONTAINER
$ docker network connect app-network mysql
$ docker run -d -p 8080:80 \
--network=app-network \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_NAME=wp \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=wp \
wordpress        

Docker Compose

# docker-compose.yml
version: '2'
services:
db:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
image: wordpress:latest
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress

  * $ docker-compose up -d
    docker compose 를 이용하여 mysql , wordpress를 실행

  * $ docker compose down
    mysql, wordpress 종료

  * 실제 운영환경에서는 docker compose를 사용함.

'Devops > docker' 카테고리의 다른 글

개선사항 및 실무  (0) 2021.06.01
도커 이미지 빌드 환경 만들기  (0) 2021.06.01
이미지 만들고 배포하기  (0) 2021.06.01
도커 개요 및 소개  (0) 2021.06.01

+ Recent posts