(0) Dockerfile 명령어
(1) Docker file 생성
(2) HTTPD
(3) FTP
(4) DNS
COMMAND | Description | COMMAND | Description |
FROM | 베이스 이미지 지정 | ADD | 파일추가(외부파일 불러오기) |
MAINTAINER | 작성자 지정 | COPY | 파일복사 : Local 디렉토리 |
RUN | 명령어 실행 | VOLUME | 볼륨마운트 |
CMD | 데몬 실행 | ENTRYPOINT | 데몬 실행 : CMD보다 우선 |
LABEL | 라벨 설정 | USER | 사용자 설정 |
EXPOSE | 포트 내보내기 | WORKDIR | 작업 디렉토리 지정 |
ENV | 환경변수 설정 | ONBUILD | Build 후 실행명령 |
* /test 디렉토리 생성 후 디렉토리 안에서 실습 진행 *
* 실습에 사용 할 test.txt 파일 생성 *
1. Dockerfile 생성
- Dockerfile을 생성할 때 파일명은 반드시 Dockerfile
- FROM centos:7 : centos7로 베이스 이미지 지정
- MAINTAINER jwoh : 작성자 jwoh
- COPY test.txt / : Local 디렉토리의 test.txt파일을 / 디렉토리에 복사
2. 이미지 생성
docker build -t [이미지명] [도커 파일 저장 경로] : jwoh0405:centos7를 현재 디렉토리에 있는 Dockerfile을 사용해
이미지 생성
3. 컨테이너 생성
- 위에서 생성한 이미지를 사용하여 컨테이너 생성
- 생성한 이미지에 포함 된 test.txt 확인 가능
- inspect 명령어를 사용하여 자세한 정보 확인
1. 시작페이지 생성
2. Dockerfile 작성
- FROM centos:7 : centos7로 베이스 이미지 지정
- RUN yum install -y httpd : httpd를 yum으로 설치
- RUN systemctl enable httpd : httpd를 시작시 자동으로 실행
- COPY index.html /var/www/html/ : Local 디렉토리의 index.html 파일을 /var/www/html/하위에 복사
- CMD : 데몬 실행
- EXPOSE 80 : 80번 포트 열기
3. 이미지 생성
* Dockerfile을 이용하여 이미지 생성 *
4. 컨테이너 생성
* Dockerfile을 이용하여 생성한 이미지를 사용해 컨테이너 생성 *
5. 확인
- Dockerfile에 작성한 내용 실행 성공
1. FTP에 필요한 파일 생성
- 사용자 생성 스크립트
- Banner file 생성
- chroot list file 생성
- FTP 기본 설정 파일 생성
2. Dockerfile 작성
- FROM centos:7 : centos7을 베이스 이미지로 설정
- RUN yum install -y vsftpd : yum 명령어를 사용해 vsftpd 설치
- RUN mkdir /test : /test 디렉토리 생성
- COPY user.sh /test/user.sh : Local 디렉토리의 usre.sh 스크립트를 /test/user.sh로 복사
- COPY ftp.txt /test/ftp.txt : Local 디렉토리의 ftp.txt 파일을 /test/ftp.txt로 복사
- COPY vsftpd.conf /etc/vsftpd/vsftpd.conf : Local 디렉토리의 vsftpd.conf 파일을 /etc/vsftpd/vsftpd.conf로 복사
- COPY chroot_list /etc/vsftpd/chroot_list : Local 디렉토리의 chroot_list 파일을 /etc/vsftpd/chroot_list로 복사
- RUN sh /test/user.sh : /test/user.sh 스크립트를 실행
- CMD : 데몬 실행
- EXPOSE 21 5000-50010 : 21번 포트와 50000-50010번 포트 열기
3. 이미지 생성
- Dockerfile을 사용하여 이미지 생성
4. 컨테이너 생성
- Dockerfile을 이용해 생성한 이미지를 사용하여 컨테이너 생성
5. 확인
1. DNS에 필요한 파일들 생성
- named.rfc1912.zones 파일 생성
- 영역 파일 생성
- resolv.conf 파일 생성
2. Dockerfile 생성
- FROM centos:7 : centos7을 베이스 이미지로 설정
- RUN yum install -y bind bind-utils bind-libs : yum 명령어를 사용하여 bind, bind-utils, bind-libs 설치
- RUN sed -i 's/127.0.0.1/any/' /etc/named.conf : /etc/named.conf 파일의 '127.0.0.1'을 'any'로 변환
- RUN sed -i 's/localhost/any/' /etc/named.conf : /etc/named.conf 파일의 'localhost'를 'any'로 변환
- RUN systemctl enable named : 시작 시 자동으로 named 실행
- COPY named.rfc1912.zones /etc/named.rfc1912.zones : Local 디렉토리의 named.rfc1912.zones 파일을
/etc/named.conf로 복사
- COPY jwoh.com /var/named/ : Local 디렉토리의 jwoh.com 파일을 /var/named/로 복사
- COPY resolv.conf /etc/resolv.conf : Local 디렉토리의 resolv.conf 파일을 /etc/resolv.conf로 복사
- RUN chmod 755 /var/named : /var/named 의 권한을 755로 변경
- RUN chmod 755 /var/named/jwoh.com : /var/named/jwoh.com의 권한을 755로 변경
- CMD : 데몬 실행
- EXPOSE 53/udp, 53/tcp : 53번 udp, tcp 포트 열기
3. 이미지 생성
- Dockerfile을 사용해 이미지 생성
4. 컨테이너 생성
- Dockerfile을 이용해 생성한 이미지를 사용해 컨테이너 생성
5. 확인
[Docker] MySQL DB + wordpress 연동 (0) | 2022.06.04 |
---|---|
[Docker] Link | MySQL | MySQL + php + httpd 실습 (0) | 2022.06.04 |
[Docker] Script 작성 | Image 생성 (0) | 2022.06.03 |
[Docker] Docker & HAproxy | 팀별 실습 (0) | 2022.06.03 |
[Docker] Virtual Box (0) | 2022.06.02 |