수업 71일차 도커 허브 , 도커 컴포즈

유동우·2023년 1월 14일
0

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의 내용을 수정한 후 수정된 서비스를 확인하고, 수정된 내용을
기반으로 이미지를 재생성 후 기존의 이미지 및 컨테이너 삭제 후 도커 허브에 업로드 하세요.

  1. 공식 nginx 이미지를 다운로드하여 사용

  2. index.html 파일을 수정

'본인이름'의 버킷리스트

  • 버킷리스트1
  • 버킷리스트2
  • 버킷리스트3
3. 컨테이너 to 이미지 : 본인계정/nginx_본인이니셜:1.0
  1. 도커 허브 업데이트 후 기존 이미지 모두 삭제

  2. 도커 허브에 업데이트 된 이미지 다운로드 후 컨테이너로 실행

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

profile
클라우드 엔지니어가 되고싶은 클린이

0개의 댓글