C:\Users\admin>cd \
C:>cd docker
C:\Docker>cd apach2
C:\Docker\apach2>docker pull httpd
docker run --name apa000ex19 -d -p 8089:80 httpd // 컨테이너 생성
docker cp apa000ex19:/usr/local/apache2/htdocs/index.html ./index2.html // 파일 복사 명령어
docker cp ./index.html apa000ex19:/usr/local/apache2/htdocs/index.html
cd ..
cd volume
docker run --name apa000ex20 -d -p 8090:80 -v C:\Docker\volume\apa_folder:/usr/local/apache2/htdocs httpd // run 커맨드로 아파치 컨테이너 실행
cd apa_folder
docker cp apa000ex19:/usr/local/apache2/htdocs/index.html ./index.html // 파일 복사 명령어
cd ..
docker volume create apa000vol1
docker run --name apa000ex21 -d -p 8091:80 -v apa000vol1:/usr/local/apache2/htdocs httpd
docker volume inspect apa000vol1 // 볼륨 마운트 정보확인 할 수 있는 명령어
docker container inspect apa000ex21 // 컨테이너 마운트 정보확인 할 수 있는 명령어
ex19 단순 컨테이너 생성 => 내부파일저장안됨
ex20 내컴퓨터의 폴더를 공유
ex21 도커가상디스크 사용
※ 도커를 쓰는 이유 : 서비스의 쉬운 설치 , 내가 만든 환경을 서비스 영역에서 그대로 사용하기 위해서
■ 컨테이너로 이미지 만들기
docker commit apa000ex19 ex22_original1 // commit 이미지 생성 , apa000ex19 원본 이미지 , ex22_original1 새로만들 이미지 이름
docker images // 이미지 확인 명령어
docker commit apa000ex19 ex19_original1
docker run --name ex19_httpd -d -p 8092:80 ex19_original1 // ex19_original1 이미지로 컨테이너 생성
■ Dockerfile 스크립트로 이미지 빌드
윈도우 c드라이브 docker에 Dockerfile이라고 확장자파일없이 만들고 안에
FROM httpd
COPY index.html /usr/local/apache2/htdocs
라고 넣고 저장한뒤 volume/apa_folder안에 넣고
프롬프트에 docker build -t ex22_original2 C:\Docker\volume\apa_folder 라고 입력
■ 컨테이너 개조
docker exec -it ex22_httpd /bin/bash // exec 커맨드에 인자 추가
docker run --name ex22_httpd -it -p 8093:80 httpd /bin/bash // run 커맨드에 인자 추가
■ 도커 허브
docker commit ex22_httpd ryudongwoo/ex22_httpd:1.0 // ex_22_httpd 원본 컨테이너 , ryudongwoo/ex22_httpd 생성이미지 , :1.0 현재 버전정보
docker push ryudongwoo/ex22_httpd:1.0 // 도커 허브에 이미지 업로드하는 커맨드
컨테이너 , 이미지 다지우고 도커허브에 업로드한 이미지 가져오는 명령어치고 작동하는지 확인
docker pull ryudongwoo/ex22_httpd:1.0 // 이미지 가져오기
docker run --name httpd_ex22 -d -p 8080:80 ryudongwoo/ex22_httpd:1.0 // ryudongwoo/ex22_httpd:1.0 이미지로 컨테이너 생성
docker tag ex22_original2 ryudongwoo/ex22_httpd:1.2 // ex22_original2 이미지로 ex22_httpd:1.2 이미지 생성
docker push ryudongwoo/ex22_httpd:1.2 // ex22_httpd:1.2 업로드
문제 1) nginx 공식 이미지를 다운받아 index.html의 내용을 수정한 후 수정된 서비스를 확인하고, 수정된 내용을
기반으로 이미지를 재생성 후 기존의 이미지 및 컨테이너 삭제 후 도커 허브에 업로드 하세요.
공식 nginx 이미지를 다운로드하여 사용
index.html 파일을 수정
도커 허브 업데이트 후 기존 이미지 모두 삭제
도커 허브에 업데이트 된 이미지 다운로드 후 컨테이너로 실행
docker run --name test-nginx -d -p 8081:80 httpd
docker exec -it test-nginx /bin/bash //접속되는지 확인
pwd
cd usr
cd share/
ls
cd nginx
ls
cd html
ls
exit
docker cp test-nginx:/usr/share/nginx/html/index.html ./index.html
docker cp ./index.html test-nginx:/usr/share/nginx/html/index.html
docker commit test-nginx ryudongwoo/test-nginx:1.0
docker images
docker push ryudongwoo/test-nginx:1.0
■ 도커 컴포즈
※ 아파치 컨테이너의 컴포즈
C:\Docker\apach2 경로에 docker-compose.yml 파일생성
-# 버전 정보
version: "3"
-# 서비스 정보 설정
services:
apa000ex2:
# 사용할 이미지 명
image: httpd
# 사용할 포트 설정
ports:
- 8082:80
# 사용할 네트워크 설정
networks:
- apa000net1
restart: always
-# 네트워크 정보 설정
networks:
-# 볼륨 정보 설정
volumes:
입력하고 저장
docker-compose -f C:\Docker\apach2\docker-compose.yml up -d
docker-compose -f C:\Docker\apach2\docker-compose.yml down
※ 워드프레스 컨테이너의 컴포즈 파일
C:\Docker에 wordpress 파일 생성후 docker-compose.yml 텍스트파일 생성하고
version: "3"
services:
mysql000ex11:
image: mysql
networks:
- wordpress000net1
volumes:
- mysql000vol11:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: myrootpass
MYSQL_DATABASE: wordpress000db
MYSQL_USER: wordpress000kun
MYSQL_PASSWORD: kunpass
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
wordpress000ex12:
depends_on:
- mysql000ex11
image: wordpress
networks:
- wordpress000net1
#volumes:
# - wordpress000vol12:/var/www/html
ports:
- 8085:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql000ex11
WORDPRESS_DB_NAME: wordpress000db
WORDPRESS_DB_USER: wordpress000kun
WORDPRESS_DB_PASSWORD: wkunpass
networks:
wordpress000net1:
volumes:
mysql000vol11:
wordpress000vol12:
입력하고 저장
docker-compose -f C:\Docker\wordpress\docker-compose.yml up -d
docker ps
docker network ls
docker volume ls
docker stop wordpress-wordpress000ex12-1
docker-compose -f C:\Docker\wordpress\docker-compose.yml down
docker-compose -f C:\Docker\wordpress\docker-compose.yml up -d