Docker 정리

엔진

sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl enable docker #자동실행상태로 설정
docker version

 

컨테이너 실행

docker run = docker container run
= docker image pull + docker container create + docker container start
docker run --name apa000ex1 -d httpd

#호스트의 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 container stop
docker stop apa000ex1

 

컨테이너 삭제

docker rm = docker container rm
docker rm apa000ex1

 

이미지 삭제

먼저 삭제하고자 하는 이미지의 컨테이너를 종료 및 삭제해야 한다.

#이미지 목록 확인
docker image ls

docker image rm
docker image rm httpd

 

WordPress 실습

#네트워크 생성
docker network create wordpress000net1

#MySQL 컨테이너 생성 및 실행
docker run --name mysql000ex11 -dit --net=wordpress000net1 -e MYSQL_ROOT_PASSWORD=myrootpass -e MYSQL_DATABASE=wordpress000db -e MYSQL_USER=wordpress000kun -e MYSQL_PASSWORD=wkunpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

#WordPress 컨테이너 생성 및 실행
docker run --name wordpress000ex12 -dit --net=wordpress000net1 -p 8085:80 -e WORDPRESS_DB_HOST=mysql000ex11 -e WORDPRESS_DB_NAME=wordpress000db -e WORDPRESS_DB_USER=wordpress000kun -e WORDPRESS_DB_PASSWORD=wkunpass wordpress

#실행 확인
docker ps

#컨테이너 종료
docker stop wordpress000ex12
docker stop mysql000ex11

#컨테이너 삭제
docker rm wordpress000ex12
docker rm mysql000ex11

#네트워크 삭제
docker network rm wordpress000net1

 

파일 복사

#호스트에서 컨네이너로 파일 복사
docker cp /home/사용자명/index.html 컨테이너이름:/usr/local/apache2/htdocs/

#컨테이너에서 호스트로 파일 복사
docker cp 컨테이너 이름:/usr/local/apache2/htdocs/index.html /home/사용자명/

 

바인드 마운트

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

 

컨테이너 속에서 명령 실행

docker exec -it apa000ex23 /bin/bash

 

도커 컴포즈

#설치
sudo apt install -y python3 python3-pip
sudo pip3 install docker-compose
docker-compose -version

#실행
docker-compose -f 경로/docker-compose.yml up -d

#종료 및 삭제
docker-compose -f 경로/docker-compose.yml down

#스토리지 마운트
version: "3.2"
services:
  web:
    image: httpd:latest
    volumes:
      - type: bind
        source: 호스트 경로
        target: 컨테이너 경로
      - type: volume
        source: mydata
        target: 컨테이너 경로
volumes:
  mydata:

Log보기

docker logs ContainerName

 

Leave a Reply