Contents
엔진
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