docker 복습 이미지 작성 ~ 컨테이너 기동
처음에
최근 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
이미지는 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
$ 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
빌드합니다.
$ 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
Reference
이 문제에 관하여(docker 복습 이미지 작성 ~ 컨테이너 기동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/quryu/items/4b4d56a8dabb47845ae7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ 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
Reference
이 문제에 관하여(docker 복습 이미지 작성 ~ 컨테이너 기동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/quryu/items/4b4d56a8dabb47845ae7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)