> 운영 및 유지보수 > Docker > Docker가 이미지를 사용자 정의하는 방법

Docker가 이미지를 사용자 정의하는 방법

WJ
풀어 주다: 2020-06-08 17:06:14
원래의
3559명이 탐색했습니다.

Docker가 이미지를 사용자 정의하는 방법

Docker에서 이미지를 사용자 정의하는 방법은 무엇입니까?

1. docker 기술을 사용하려면 먼저 docker 패키지를 설치해야 합니다.

이번에는 docker-engine-1.12.1-1.el7.centos.x86_64.rpm 기반을 사용했습니다. 이 시스템에서 기본 시스템은 시스템 상단에서 애플리케이션을 패키지하고 전달합니다. 컨테이너를 프로세스만큼 빠르게 시작할 수 있습니다.
Docker 기술을 기반으로 필요한 다양한 시스템 환경을 캡슐화하여 미러로 최소화하고 프로세스처럼 시작할 수 있습니다.

2. 커스텀 도커 이미지 만들기
먼저 도커 공식 홈페이지에서 도커 이미지를 다운로드하세요

docker search docker
docker pull docker
로그인 후 복사


공식 홈페이지에 있는 이미지는 모두 최소 설치이므로 먼저 yum 소스를 구성하고 설치해야 합니다. centos 이미지 일반적으로 사용하는 소프트웨어를 설치하고 httpd 및 sshd를 시작합니다. 구체적인 작업은 다음과 같습니다.

yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm
mkdir testcd testtouch Dockerfile
vim Dockerfile
FROM centos:latest
RUN rm -f /etc/yum.repos.d/*
ADD centos7.repo /etc/yum.repos.d/centos7.repo
RUN yum -y install httpd openssh-server net-tools bash-completion.noarch \ iproute vim-enhanced
EXPOSE 80 22
RUN  echo "123456" |passwd --stdin root
RUN  /usr/sbin/sshd-keygen
ENV EnvironmentFile=/etc/sysconfig/sshd
WORKDIR /var/www/html
RUN echo "<h1><font color=red>this is centos1:httpd">index.html
ENV EnvironmentFile=/etc/sysconfig/httpd
ADD qd.sh /root/qd.sh    
CMD ["/root/qd.sh"]
:wq
로그인 후 복사


참고:
EXPOSE는 열려 있는 컨테이너의 포트를 지정합니다. 현재 디렉터리를 컨테이너로 지정합니다. 지정된 디렉터리에서는 현재 경로여야 합니다.
RUN은 컨테이너에서 실행되는 명령을 나타냅니다.
FROM은 지정된 소스 이미지, 즉 이 이미지의 기반이 되는 이미지를 나타냅니다.
WORKDIR은 지정된 컨테이너의 작업 디렉터리로, centos 시스템의 cd 명령과 동일합니다.
ENV는 환경 변수를 정의합니다.
CMD는 컨테이너가 시작된 후 실행될 첫 번째 명령을 지정합니다. [] 및 따옴표가 있는 경우 쉼표로 구분됩니다. 예: ["/usr/sbin/sshd", "-D"]
생성된 파일은 Dockerfile이라고 해야 합니다
이러한 명령을 수동으로 작성한다고 생각된다면 더 복잡하면 기본 이미지를 입력하여 각 명령을 실행한 다음 기록을 사용하여 명령을 보고 cp 명령을 사용하고 위의 해당 형식으로 바꿀 수 있습니다.

3. 시작 스크립트 작성Docker 이미지의 CMD는 컨테이너 시작 후 실행되는 첫 번째 기본 명령이므로 CMD에는 하나의 명령만 작성할 수 있으며, 이 경우에는 sshd와 httpd 두 프로그램을 시작해야 하므로 스크립트를 작성하고 CMD가 스크립트를 직접 실행하도록 해야 합니다.

vim qd.sh#!/bin/bash/usr/sbin/sshd -D &
/usr/sbin/httpd -DFOREGROUND
:wq
로그인 후 복사

chmod +x qd.sh //실행 권한 추가


4. 이미지 생성현재 디렉터리에서 실행해야 함

docker build -t wang:sh2 .
로그인 후 복사

5. 이미지를 시작하고 컨테이너 포트를 매핑합니다.

docker run -d -p 80:80 -p 2022:22 wang:sh2
로그인 후 복사
컨테이너의 포트 80을 물리적 머신의 포트 80에 매핑하고, 컨테이너의 포트 22를 물리적 머신의 포트 2022에 매핑합니다.

6. 액세스 확인


firefox http://192.168.1.194(物理机)
ssh -p 2022 192.168.1.194
로그인 후 복사

7. Extension

먼저 sshd 서비스의 미러를 만든 다음 sshd 미러를 기반으로 httpd 컨테이너를 구축할 수도 있습니다:

im Dockerfile
FROM wang:sshd
RUN yum -y  httpd
EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html
RUN echo "<h1><font color=red>this is httpd and sshd">index.html
ADD qd.sh /root/qd.sh    
CMD ["/root/qd.sh"] 
:wq
로그인 후 복사
관련 참조:
docker 튜토리얼

위 내용은 Docker가 이미지를 사용자 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿