Docker 명령어 정리

Cheoly·2024년 1월 31일
post-thumbnail

Docker 설치

# Docker 설치
sudo curl -sSL get.docker.com | sh

기본 Docker 명령어

# 컨테이너 생성 및 시작
docker run -it --name test ubuntu:14.04

# 현재 사용자를 Docker 그룹에 추가하여 권한 부여
sudo usermod -aG docker $USER

# 컨테이너 종료하지 않고 나가기
# (Ctrl + P, Q로 나가기)
# exit로 나가면 컨테이너 종료

# 종료된 컨테이너 다시 시작
docker start test

# Docker 이미지 확인
docker images

# 컨테이너 중복 이름 불가능
docker run -it --name test2 ubuntu:18.04

# 컨테이너 삭제
docker rm test
docker rm test2

# 모든 컨테이너 삭제
docker rm $(docker ps -a -q)

# 포트 매핑
docker run -it --name webserver -p 90:80 ubuntu:14.04

MySQL 컨테이너

# MySQL 컨테이너 생성
docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=encore -e MYSQL_DATABASE=wordpress mysql:5.7

# WordPress 컨테이너와 연결
docker run -d -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=encore -e WORDPRESS_DB_NAME=wordpress --name wordpress --link wordpressdb:mysql -p 90:80 wordpress

# MySQL 컨테이너 생성 (포트포워딩, 환경변수 설정, 볼륨 마운트)
docker run -d --name encoredb -e MYSQL_ROOT_PASSWORD=encore -e MYSQL_DATABASE=encore -p 3306:3306 -v /home/ubuntu/data:/var/lib/mysql mysql:5.7

컨테이너 조작

# 백그라운드에서 실행 중인 컨테이너에 접속
docker exec -it encoredb bash

# 컨테이너에 attach (백그라운드에서 실행 중이면 사용 불가)
docker attach test

# 파일 복사 (로컬 -> 컨테이너)
docker cp encore_backup.sql encoredb:/root/

데이터베이스 관련

# MySQL 복원
docker exec -it encoredb bash 
cd ~
mysql -uroot -pencore encore < encore_backup.sql 

Docker Volume

# 볼륨 생성
docker volume create --name myvol

# 볼륨 확인
docker volume ls

# 볼륨 삭제
docker volume rm myvol

# 볼륨 마운트
docker run -it --name myvol_1 -v myvol:/root ubuntu:14.04

Docker 네트워크

# 네트워크 생성
docker network create --driver bridge mybridge

# 컨테이너에 네트워크 적용
docker run -it --name mynetwork_cont --net mybridge ubuntu:14.04

Apache Airflow

# Airflow 설치
pip install apache-airflow==2.8.1 --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.8.1/constraints-3.10.txt

# Airflow standalone 실행
airflow standalone

# Airflow 컨테이너 실행
docker run -it -p 8080:8080 -v /home/ubuntu/airflow:/opt/airflow/dags/ --entrypoint=/bin/bash --name airflow2 apache/airflow:2.0.0-python3.8

Dockerfile

# 예시 Dockerfile
FROM ubuntu:14.04
LABEL "purpose"="practice"
RUN apt-get update
RUN apt-get install apache2 -y
ADD test.html /var/www/html
WORKDIR /var/www/html
RUN ["/bin/bash", "-c", "echo hello >> test2.html"]
EXPOSE 80
CMD apachectl -DFOREGROUND

Docker Compose

Docker Compose 설치

# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

Docker Compose 명령어

# Docker Compose 빌드
docker-compose build

# Docker Compose로 컨테이너 실행
docker-compose up

# Docker Compose로 컨테이너를 백그라운드에서 실행
docker-compose up -d

# Docker Compose로 실행 중인 컨테이너 종료
docker-compose down

vscode에서 aws ec2연결하는 방법 사이트

profile
데이터 엔지니어

0개의 댓글