새터산 개발자 공부한 것을 정리하는 블로그입니다.

docker

설치

Install Docker Engine on Ubuntu

매번 sudo 명령어를 입력하기 귀찮다면 일반 사용자에게 권한 부여

sudo usermod -aG docker $USER
sudo service docker restart

Docker 정보

이미지 경로 : 리눅스 Docker 저장 위치 확인 및 변경
이미지 전체 용량 확인 : docker system df
이미지 개별 용량 확인 : docker system df -v

Docker 실행

Docker 명령어

docker version

# 전체 컨테이너 목록 조회 : 
docker ps -a  

# 실행
sudo systemctl start docker  

# 종료
sudo systemctl stop docker  

# 자동실행 설정
sudo systemctl enable docker  

# docker는 기본으로 자동실행이며 특정 컨네이터를 자동실행하고 싶으면 컨테이너 실행시 다음 옵션을 준다.
--restart always

Container 명령어

docker run = docker container run = docker image pull + docker container create + docker container start  

#호스트의 8080포트 접근시 컨네이너의 80포트를 연결한다.
#동일 이미지를 여러개 실행하려면 호스트 포트만(필요한 경우 컨테이너 포트도) 달리해서 실행한다.
docker run --name apa000ex2 -d -p 8080:80 httpd

#특정 버전을 지정하고 싶으면 이미지 이름 뒤에 지정한다.
docker run --name apa000ex2 -d -p 8080:80 httpd:2.2

#MySQL 실행하면서 백그라운드로로 실행, 내부 조작가능하게 실행, 루트 패스워드를 지정
docker run --name mysql000ex7 -dit -e MYSQL_ROOT_PASSWORD=myrootpass mysql

#현재 실행중인 컨테이너만 조회
docker ps = docker container ls

#전체 컨네이너 조회
docker ps -a

#중지
docker stop  
docker stop = docker container stop
docker stop apa000ex1

#삭제
docker rm
docker rm = docker container rm
docker rm apa000ex1

복합 Container 명령어

# mysql : 
docker run --name -dit --net= -e MYSQL_ROOT_PASSWORD= -e MYSQL_DATABASE= -e MYSQL_USER= -e MYSQL_PASSWORD= --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

# wordpress : 
docker run --name -dit --net= -p 8085:80 -e WORDPRESS_DB_HOST= -e WORDPRESS_DB_NAME= -e WORDPRESS_DB_USER= -e WORDPRESS_DB_PASSWORD=

Image 명령어

# 목록 조회 : 
docker image ls  
# 삭제 : 
docker image rm  
# 삭제 : 
docker image rm httpd  
# 삭제 : 
docker image rm mysql:5.7

Network 명령어

# 생성 : 
docker network create wordpress000ex12
# 삭제 : 
docker network rm wordpress000ex12

기타 명령어

로그 보기

docker logs

Bind Mount

docker run --name -v HostPath ContainerPath  
docker run --name apa000ex20 -d -p 8090:80 -v /home/사용자명/apa_folder:/usr/local/apache2/htdocs httpd

웹서버 권한 오류 발생시 : 
chown -R 33:33

Container 조작

docker exec -it /bin/bash  
docker exec -it apa000ex23 /bin/bash
exit

파일복사

# Host -> Container : 
docker cp HostPath ContainerName:ContainerPath  
docker cp /home/사용자명/index.html 컨테이너이름:/usr/local/apache2/htdocs/
# Container -> Host : 
docker cp ContainerName:ContainerPath HostPath
docker cp 컨테이너 이름:/usr/local/apache2/htdocs/index.html /home/사용자명/

Docker Compose

설치

# Ubuntu24에서는 기본으로 설치되어 있음
sudo apt install -y python3 python3-pip  
sudo pip3 install docker-compose
docker-compose -version

실행

docker-compose -f up -d
docker-compose -f 경로/docker-compose.yml up -d

중지

docker-compose -f stop

종료

docker-compose -f down
docker-compose -f 경로/docker-compose.yml down