티스토리 뷰
[Docker] 1. Ubuntu에 Docker 설치하기
[Docker] 2. Docker registry에서 이미지 다운받아 컨테이너 생성 및 구동하기
[Docker] 3. Docker 컨테이너 생성/구동/중지/삭제 명령어 익히기
[Docker] 4. Docker 우분투 컨테이너에서 작업 후 이미지 제작하기
작업할 우분투 서버 이미지를 생성합니다.
docker pull ubuntu
우분투서버 이미지로 컨테이너를 구동하면 컨테이너를 지속할 코드없기 때문에,
구동하자마자 컨테이너가 종료됩니다.
컨테이너를 유지하며 우분투 컨테이너에 들어가서 작업하기 위해서는 --it 이라는 옵션을 붙여주어야 합니다.
아래 명령어를 입력하면 우분투서버 컨테이너를 만듦과 동시에 컨테이너 안으로 들어가게 됩니다.
docker run -it --name="ubuntu" ubuntu
-d 옵션을 붙여주면, 백그라운드에서 데몬을 실행하겠다는 의미입니다.
컨테이너를 종료하지 않고 빠져나가려면 Ctrl + p + q 를 차례대로 입력하면 됩니다.
# 백그라운드로 컨테이너 생성 및 구동
docker run -it -d --name="ubuntu" ubuntu
# 우분투 컨테이너로 접속
docker exec -it ubuntu bash
우분투 컨테이너에서 작업을 한 후, 이미지로 저장해봅시다.
저는 우분투 컨테이너에 파이썬 3.9를 설치했습니다.
우분투 컨테이너 생성초기에는 파이썬이 설치되어있지 않습니다.
<우분투 컨테이너>
<우분투 컨테이너에 python3.9를 설치한 모습>
변경된 컨테이너를 이미지로 저장합니다.
컨테이너를 Ctrl + p + q를 차례대로 눌러 빠져나온 후, 커밋합시다.
변경된 컨테이너를 이미지로 저장하는 명령어는 docker commit {컨테이너ID} {저장할 이미지 이름} 입니다.
docker Hub 내 계정에 내 이미지를 올리기 위해서는 이미지로 저장시 앞에 계정명을 입력해주어야 합니다.
docker commit 3dd509a39e42 {계정명}/ubuntu_py39
이제 내 계정 레파지토리에 이미지를 올리기 위해 로그인을 해줍니다.
Login Succeeded가 나오면 로그인성공.
docker login
docker push {계정명}/{이미지이름} 명령어로 내 레파지토리에 이미지를 올립니다.
docker push {계정명}/ubuntu_py39
Docker Hub에 들어가서 로그인 후, 나의 계정 페이지에 들어가면, 내가 올린 ubuntu_py39가 레파지토리에 올라가 있는 것을 확인할 수 있습니다.
ubuntu_py39를 클릭합니다.
우측하단에 있는 Docker Pull Command를 클릭해서 복사합니다.
변경된 이미지가 제대로 저장되고 불러와지는지 확인해보기 위해
저장된 이미지들과 컨테이너들을 삭제하고, docker pull 명령어를 통해 저장했던 이미지를 불러옵니다.
# 모든 컨테이너 구동 중지 및 삭제
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
# 모든 이미지 삭제
docker rmi $(docker images -q)
불러온 이미지를 test라는 이름으로 컨테이너를 만들고, 접속하여 파이썬 3.9가 제대로 실행되는지 확인해보면 끝입니다.
docker run -it -d --name="test" {계정명}/ubuntu_py39
docker exec -it test bash
[Docker] 5. Docker 컨테이너의 데이터 공유하기
'개발환경 > K8S·Docker' 카테고리의 다른 글
[Kubernetes] 1. Ubuntu에 Kubernetes 설치하기 (0) | 2023.02.28 |
---|---|
[Docker] 5. Docker 컨테이너의 데이터 공유하기 (0) | 2023.02.27 |
[Docker] 3. Docker 컨테이너 생성/구동/중지/삭제 명령어 익히기 (0) | 2023.02.25 |
[Docker] 2. Docker registry에서 이미지 다운받아 컨테이너 생성 및 구동하기 (0) | 2023.02.23 |
[Docker] 1. Ubuntu에 Docker 설치하기 (0) | 2023.02.22 |