1. 도커 이미지

1) 도커 이미지 검색

# docker images

2) 도커 단일 이미지 삭제

# docker image rm <image ID>

3) 도커 모든 이미지 삭제

# docker rmi $(docker images -q) -f

 

2. 도커 컨테이너 생성

1) 도커 컨테이너 생성 & 실행

# docker run <옵션> --name <컨테이너이름:test> <이미지 Repository>

2) 도커 컨테이너 생성만

# docker create <옵션> --name <컨테이너이름:test> <이미지 Repository>

 

3. 도커 컨테이너 접속

1) 도커 컨테이너 접속

# docker exec -it <컨테이너이름> /bin/bash

 

4. 도커 컨테이너 빠져나오기

컨테이너에서 빠져나오는 방법은 두가지가 있습니다.

1) 컨테이너를 종료하면서 빠져나오기

# exit 또는 ctrl+D

2) 컨테이너가 가동되는 상태를 유지하면서 접속만 종료하기

# ctrl + P 입력 후 Q 입력

 

5. 도커 컨테이너 실행/종료

1) 컨테이너 실행

# docker start <컨테이너이름>

2) 컨테이너 종료

# docker stop <컨테이너이름>

3) 모든 컨테이너 한번에 종료

# docker stop $(docker ps -qa)

4) 컨테이너 강제 종료 (SIGKILL 시그널 전달)

# docker kill [container]

5) 컨테이너 일시 중지

# docker pause [container]

6) 컨테이너 재개

# docker unpause [container]

 

6. 컨테이너 조회

1) 실행중인 컨테이너 리스트 출력

# docker ps

2) 전체 컨테이너 리스트 출력

# docker ps -a

3) 컨테이너 상세 정보 확인

# docker inspect [container]

 

7. 컨테이너 삭제

1) 개별 컨테이너 삭제

# docker rm <컨테이너이름>

2) 모든 컨테이너 한번에 삭제

# docker rm $(docker ps -qa)

3) 중지된 모든 컨테이너 삭제

# docker container prune

 

8. 컨테이너 로그 확인

1) 개별 컨테이너 로그 확인

# docker logs [컨테이너이름]

2) 마지막 로그부터 사용자가 지정한 라인까지 출력 (로그가 너무 많아 읽기 힘든 경우)

# docker logs --tail 10 [컨테이너이름]

3) 입력받은 유닉스 시간 이후의 로그 확인, -t 옵션으로 타임스탬프 표시 가능

# docker logs --since 1549150300 -t [컨테이너이름]

4) 실시간으로 생성되는 로그를 스트림으로 확인

# docker logs --tail 10 -f [컨테이너이름]

 

 

참고

https://narup.tistory.com/198

https://kimjingo.tistory.com/58

https://velog.io/@bbangi/Docker-%EC%83%9D%EC%84%B1-%EC%8B%A4%ED%96%89-%EC%A2%85%EB%A3%8C

https://sungwookkang.com/1299

준비 : EC2에 ssh로 접속한다.

 

Docker 설치

1. 패키지 업데이트 

sudo apt-get update

2. https관련 패키지 설치

sudo apt install apt-transport-https ca-certificates curl software-properties-common

3. docker repository 접근을 위한 gpg 키 설정

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. docker repository 등록

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

5. 다시 패키지 업데이트

sudo apt update

6. 도커 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io

7. 설치 확인

sudo docker --version

8. 도커로 hello-world 이미지 구동해봄

sudo docker run hello-world

9. 아래와 같은 메시지가 나오면 성공!

latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:926fac19d22aa2d60f1a276b66a20eb765fbeea2db5dbdaafeb456ad8ce81598
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

Docker-compose 설치

docker-compose를 standalone 방식으로 설치하는 방법이다.

 

1. Compose standalone을 다운로드하고 설치

sudo curl -SL https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2. 설치한 파일에 실행권한 추가

sudo chmod +x /usr/local/bin/docker-compose

3. 어느 위치에서든 docker-compose 명령을 사용하고 싶으면, 아래 심볼릭 링크 추가

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4. docker-compose 버전 확인

sudo docker-compose -v

 

sudo 없이 docker 명령어 사용하기

1. 현재 사용자를 docker group에 포함

sudo usermod -aG docker ${USER}

사용자명이 ubuntu라면,

sudo usermod -aG docker ubuntu

2. 터미널 재시작 후 결과 확인(끝에 docker가 있는지 확인)

id -nG

 

참고

https://velog.io/@osk3856/Docker-Ubuntu-22.04-Docker-Installation

https://docs.docker.com/compose/install/standalone/

https://everydayyy.tistory.com/121

Docker compose(도커 컴포즈)란?

복수 개의 컨테이너를 실행시키는 도커 애플리케이션을 정의하기 위한 툴이다.

 

도커 컴포즈를 이용해, DB와 Wordpress 두개의 컨테이너를 만들어 실행해서 워드프레스를 설치해보도록 하겠다.

시작 전에 도커 컴포즈가 설치되어 있어야 한다. https://docs.docker.com/compose/install/

 

프로젝트 정의

1. 빈 프로젝트 디렉토리를 생성한다.

디렉토리 명은 편한것으로 만들면 된다. 이 디렉토리 안에 docker-compose.yml 파일을 저장할 것이다.

 

2. 방금 만든 디렉토리 안으로 이동한다.

예를 들어, my_wordpress라는 폴더를 만들었다면 아래 명령으로 해당 디렉토리 안으로 이동 가능하다 :

$ cd my_wordpress/

 

3. 아래의 내용으로 docker-compose.yml 파일을 생성한다. (워드프레스 블로그와, 볼륨 마운드를 한 별도의 MySQL 인스턴스를 생성할 수 있는 스크립트이다.)

services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:

 

프로젝트 빌드

프로젝트 디렉토리 안에서 아래 명령을 실행한다.

$ docker compose up -d

위 명령은 docker compose up 을 detached mode로 실행하고, 도커 이미지를 가져오고, 워드프레스와 데이터베이스 컨테이너를 시작한다. 

브라우저에서 워드프레스 접속 및 설치

이제, 워드프레스가 도커 호스트의 80 포트에서 동작한다. 브라우저로 접속해보면, 설지 시작 화면을 볼 수 있다.

도커가 로컬호스트에 설치되어 있다면, 브라우저 주소창에 http://localhost  를 입력하면 접속 가능하다.

원격 서버에 설치되어 있다면, localhost 대신 서버의 ip 주소나, 도메인명을 입력하면 된다.

종료 및 삭제

컨테이너와 기본 네트워크를 종료하지만 워드프레스 데이터베이스를 남기고 싶다면 docker compose down 명령을 입력한다.

컨테이너, 기본 네트워크, 데이터베이스까지 모두 삭제하고 싶다면 docker compose down --volumes 명령을 입력한다.

 

참고

https://docs.docker.com/samples/wordpress/

 

+ Recent posts