728x90
반응형

dockerfile을 작성하지 않는 방법

1. 아파치 이미지 다운받기

- pull명령어로 이미지 다운
$ docker pull httpd:latest

2. 아파치 컨테이너 실행

- 기본적인 옵션
$ docker run -d --name apache -p 8080:80 httpd

-d : detached mode -> 백그라운드 모드(필수)
--name 컨테이너명
-p : [호스트 포트]:[컨테이너 포트] -> 포트 포워딩(필수)

·host에 html파일을 만들어놓고, 도커 컨테이너에서 그 파일에 접근해서 사용하는 방법 : 도커볼륨 이용

$ docker run -dit --name apache -p 8080:80 -v ~/Desktop/apache_doc:/usr/local/apache2/htdocs/ httpd

도커볼륨을 이용해서 host와 container가 폴더를 공유하는 방식
호스트의 `~/Desktop/apache_doc`폴더에 index.html파일을 만들어놓고, 컨테이너의 html을 저장하는 폴더`(/usr/local/apache2/htdocs/)`와 공유
이렇게 하면 컨테이너는 컨테이너의 `htdocs`폴더 대신 호스트의 `apache_doc` 폴더를 사용
공유하는 것이기 때문에 컨테이너의 폴더를 변경하면 호스트의 폴더 내용 바뀜

-dit : -d옵션 + -i 옵션 + -t옵션 -> 백그라운드 + 컨테이너 속 터미널 입력
- v : [호스트 폴더]:[컨테이너 폴더] -> 컨테이너 폴더 대신 호스트폴더를 공유

3. 아파치 실행 확인
웹브라우저에 localhost:8080 입력
포트번호는 옵션으로 넣은 번호

4. 디렉토리 복사하기 

$ docker cp apache:/ ~/Desktop/copy_to_dir
-  cp [복사할 폴더] [붙여넣기 할 폴더] 
-> 컨테이너 폴더 → 호스트 폴더로 복사
apache 컨테이너의 `루트폴더(/)`를 `copy_to_dir` 폴더로 복사
컨테이너 폴더는 앞에 `[컨테이너 이름]:` 을 붙임

-> 호스트 폴더 → 컨테이너로 복사
$ docker cp ~/Desktop/copy_to_dir apache:/

5. 도커에서 돌아가는 프로세스 확인
$ docker ps -a
ps만 하면 `실행중인 컨테이너`가 보이고, -a 옵션을 붙이면 `종료된 컨테이너`도 보인다

728x90
반응형

+ Recent posts