docker 복습 이미지 작성 ~ 컨테이너 기동

4211 단어 EC2도커AWS

처음에



최근 python이나 Vue.js의 공부만으로 EC2나 docker를 사용하지 않았기 때문에 이미지 작성부터 컨테이너 기동까지의 복습을 해 보았다.

EC2 인스턴스 시작



이미지는 Amazon Linux2를 사용.





docker 명령 설치



공식 문서를 그대로 복사하여 설치.
$ sudo yum update -y
$ sudo amazon-linux-extras install docker
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user

빌드 ~ 컨테이너 시작



EC2 인스턴스 로그인 후 ~/my_dir에서 Dockerfile까지 생성.
$ mkdir my_dir
$ cd my_dir
$ vi enigma.py
$ vi test.sh
$ vi Dockerfile
  • enigma.py


  • test.sh


  • Dockerfile



  • 빌드합니다.
    $ docker build -t original_image .
    



    마운트용 디렉토리mnt_dir를 작성하고 파일을 이동하십시오.
    mkdir mnt_dir
    $ ls
    Dockerfile  enigma.py  mnt_dir  test.sh
    
    $ mv `ls | grep -v 'Docker' | grep -v 'mnt'` ./mnt_dir/
    $ ls ./mnt_dir/
    enigma.py  test.sh
    

    docker 시작.
    $ docker run -it -v `pwd`/mnt_dir:/mnt original_image /bin/bash
    

    마운트되어 있는지 확인.
    root@67ac0dab37f2:/# ls /mnt/
    enigma.py  test.sh
    

    파이썬 파일 실행.
    root@67ac0dab37f2:/# python3 /mnt/enigma.py | tee /mnt/output.txt
    FRZXI JFDRX. XV SYXU LV BZEXX. SJXO AG NLDE KEN.
    HELLO WORLD. MY NAME IS ALICE. NICE TO MEET YOU.
    root@67ac0dab37f2:/# cat /mnt/output.txt
    FRZXI JFDRX. XV SYXU LV BZEXX. SJXO AG NLDE KEN.
    HELLO WORLD. MY NAME IS ALICE. NICE TO MEET YOU.
    
    Ctrl + P + Q 로 기동한 상태를 유지하면서 컨테이너를 빠진다.
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    67ac0dab37f2        original_image      "/bin/bash"         3 minutes ago       Up 3 minutes                            recursing_wozniak
    

    파이썬 실행도 문제 없습니다.
    $ cat ./mnt_dir/output.txt
    FRZXI JFDRX. XV SYXU LV BZEXX. SJXO AG NLDE KEN.
    HELLO WORLD. MY NAME IS ALICE. NICE TO MEET YOU.
    

    컨테이너 실행시 쉘 실행



    Dockerfile에 CMD를 추가합니다.
    $ vi ./mnt_dir/test.sh 
    $ vi Dockerfile
    





    빌드 재실행. 그런 다음 여러 번 컨테이너를 시작합니다.
    $ docker build -t original_image .
    $ docker run -v `pwd`/mnt_dir:/mnt original_image
    $ docker run -v `pwd`/mnt_dir:/mnt original_image
    $ docker run -v `pwd`/mnt_dir:/mnt original_image
    $ docker run -v `pwd`/mnt_dir:/mnt original_image
    

    쉘이 실행되고 있는지 확인.
    $ ls ./mnt_dir/
    enigma.py                       mnt_file_20210116-05:25:01.txt  mnt_file_20210116-05:29:38.txt  test.sh
    mnt_file_20210116-05:24:47.txt  mnt_file_20210116-05:25:47.txt  output.txt
    

    좋은 웹페이지 즐겨찾기