반응형

alpine linux 이미지를 다운받아서 컨테이너를 만든다
python 테스트용으로 사용할 컨테이너 이름을 python이라고 이름짓는다


●    alpine docker 이미지를 다운 받는다

            #    docker    pull    alpine

Using default tag: latest
latest: Pulling from library/alpine
59bf1c3509f3: Pull complete
Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest


            외부에서 컨테이너로  FTP 접속을 위해서 호스트 디렉토리에 FTP 디렉토리를 설정한다
            호스트와 컨테이너는 FTP 디렉토리를 공유함으로써
            직접 컨테이너에 올리는것과 같은 의미를 가진다.

            호스트의  /home/ftpRoot/프로젝트명 을 컨테이너의 /home/fileRoot/프로젝트명과 연동시킨다
            호스트의 FTP에 올린 파일은 컨테이너에서 바로 공유가 된다

            ( 이를 위해서 vsFtpd container  를 사용함, https://knsesang2000.tistory.com/7 )

            도커 이미지가 삭제가 되더라도
            컨테이너에서 작업했던 파일은 모두 살아있게 된다 ( 실제로는 호스트 디렉토리에 있으므로 )
            인터넷IP  =  호스트IP  →  컨테이너 ( 호스트_포트 ≠ 컨테이너_포트  )
            인터넷과 통신이 이루어지는 포트는
            외부에 보여지는 호스트의 포트이며 이를 통해서 통신이 이루어진다.

             -p  17180  :  80            
            인터넷  ←  Alpine Host  :  17180  port           
            Alpine Host  ←  컨테이너  :  80 port


            보통 컨테이너 포트는 기본포트로 설정되며 ( 80, 1433, 3306....)
            호스트는 외부IP의 포트번호를 공유한다

            docker run -itd
            -v 호스트_공유_디렉토리_경로:컨테이너_공유_디렉토리_경로
            -p 호스트_Port:컨테이너_Port
            --name 새_도커_컨테이너_이름  ( docker ps 할때 보여지는 이름 )
            --hostname 도커_컨테이너_컴퓨터_이름 ( 컨테이너 안으로 들어갈때 보이는 프롬프트 이름 )
            도커_이미지_원본_이름

            -itd : 백그라운드로 실행, 나중에 터미널로 들어가겠음
            만약  d 옵션없이 docker    run    -it 를 한다면
            바로 컨테이너 안으로 들어가서 프롬프트가 나타난다
            컨테이너 #


●    도커 컨테이너 만들기 ( ex. 파이썬 컨테이너 )
            # docker    run    -itd \
            -v    /home/ftpRoot:/home/webRoot \
            -p    64380-64381:80-81 \
            --name    python38 \
            --hostname    docker_python38 \
            alpine


●    컨테이너 안으로 들어가기
            # docker    attach    python38


●    레포지토리 설정
            기본 구성에 자신의 지역에서 빠른 미러서버를 추가한다.
            기본 alpine 서버로만 하면 최신 패키지 다운에 문제가 있을수 있다.
            py3-pandas 패키지도 설치가 안되는 문제가 있음.
            컨테이너 #    vi    /etc/apk/repositories

http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/main
 
http://sjc.edge.kernel.org/alpine/edge/main
http://sjc.edge.kernel.org/alpine/edge/community

 

●    리눅스 업데이트
            컨테이너 #    apk    update


●    리눅스 업그레이드
            컨테이너 #    apk    upgrade

 

반응형