Docker 시작하기, Container 기초

tiki·2021년 5월 13일
1

Docker

목록 보기
1/3
post-thumbnail

도커를 통한 서비스를 배포하고 관리하기 위해서 사용해보기로 했다.

docker 설치하기

다음은 Mac OS를 기준으로 진행됨을 알려드립니다.

https://hub.docker.com/editions/community/docker-ce-desktop-mac

다음 사이트에 방분하여 docker를 다운로드 받고 회원가입 및 튜토리얼 절차를 따라가주면 된다.

docker를 다운 받고 나면

터미널에서 docker version을 통해서 다운로드가 되어 있는 docker의 버전을 알 수 있다.

docker version
bangyoungho@Bangui-MacBookPro ~ % docker version
Client:
 Cloud integration: 1.0.14
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.16.3
 Git commit:        370c289
 Built:             Fri Apr  9 22:46:57 2021
 OS/Arch:           darwin/amd64
 Context:           default
 Experimental:      true

여기서 필자는 ubuntu 이미지를 다운받고 실행해보려고 한다. 버전은 AWS EC2에서 사용하고 있는 18.04 버전을 사용하기로 했다.

sudo docker pull ubuntu:18.04

해당 코드를 통해서 ubuntu 이미지를 다운 받는다.

bangyoungho@Bangui-MacBookPro ~ % sudo docker pull ubuntu:18.04  
Password:
18.04: Pulling from library/ubuntu
01bf7da0a88c: Pull complete 
f3b4a5f15c7a: Pull complete 
57ffbe87baa1: Pull complete 
Digest: sha256:538529c9d229fb55f50e6746b119e899775205d62c0fc1b7e679b30d02ecb6e8
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

Container 사용

  1. docker create : 이미지를 사용해서 컨테이너를 생성한다.
  2. docker run : 이미지를 사용해서 컨테이너를 생성하고 바로 실행까지 한다.
  3. docker stop : 실행 상태인 컨테이너를 중지한다.
  4. docker rm : 컨테이너를 삭제한다. 단, 이미지는 삭제되지 않는다.
  5. docker start : 중지 상태인 컨테이너를 실행한다.

docker run

docker run -it --name "ubuntu_test" ubuntu /bin/bash

다음과 같은 코드로 image를 컨테이너로 실행할 수 있다.

  1. -it : 현재 실행중인 터미널에 결과를 출력한다.
  2. --rm : 실행 후 컨테이너를 바로 삭제한다.
  3. --name "ubuntu_test" : 컨테이너 이름을 지정한다.
  4. ubuntu : 사용할 이미지 이름을 선택한다.
  5. /bin/bash : 컨테이너에서 실행하는 커맨드이다.
root@b8611a070e16:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr
root@b8611a070e16:/# 

실행하면 다음과 같은 결과가 나오고 ls, cd 등을 활용하여 ubuntu 내의 환경에서 조작이 가능하다.

exit 를 이용하면 이 화면을 빠져나올 수 있고 container 가 자동으로 종료되게 된다.

Container 실행 내역

docker ps

현재 실행중인 컨테이너를 볼 수 있다.

bangyoungho@Bangui-MacBookPro ~ % docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                               NAMES
5d4373995043   docker101tutorial   "/docker-entrypoint.…"   47 minutes ago   Up 47 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   docker-tutorial

tutorial 를 거치다보면 생성되는 이미지와 컨테이너가 실행중이고 방금전 시행했던 "ubuntu_test"는 종료된것을 볼 수 있다.

docker ps -al

해당 코드를 통해서 종료되었던 컨테이너의 로그를 볼 수 있다.

bangyoungho@Bangui-MacBookPro ~ % docker ps -al
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                        PORTS     NAMES
b8611a070e16   ubuntu    "/bin/bash"   5 minutes ago   Exited (127) 25 seconds ago             ubuntu_test

Container 중지

 docker stop "container name"
bangyoungho@Bangui-MacBookPro ~ % docker stop docker-tutorial
docker-tutorial

tutorial 로 실행중인 컨테이너를 중지 했다.

Container 삭제

 docker rm "container name"

Container 실행

 docker start "container name"
bangyoungho@Bangui-MacBookPro ~ % docker start ubuntu_test   
ubuntu_test
bangyoungho@Bangui-MacBookPro ~ % docker ps               
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS         PORTS     NAMES
b8611a070e16   ubuntu    "/bin/bash"   22 minutes ago   Up 4 seconds             ubuntu_test

방금 전 중지되었던 ubuntu_test 컨테이너가 다시 실행된 것을 볼 수 있다.

 docker restart "container name"

다음의 명령어로는 컨테이너를 다시 실행할 수 있다.

Container에 대한 기초적인 코드를 알아보면서 docker에서 컨테이너를 어떻게 실행하는지 알아보았다. 다음 글에서는 이미지를 직접 만들어보고 배포해보는 과정을 천천히 연습해보겠습니다.

profile
하루하루 조금씩 발전하려는 개발자 입니다.

1개의 댓글

comment-user-thumbnail
2023년 2월 21일

안녕하세요 운영자님
인카토스입니다.
먼저, 댓글로 인사를 드리게 된 점 양해 부탁 드립니다.
이렇게 연락 드린 이유는 이번에 저희가 제작한 도커 각티슈케이스 제품 협찬을 제안드리고 싶어서 연락 드렸습니다.
개발자들에게 많은 사랑은 받은 각티슈케이스입니다.
저희 상품 블로그 포스팅이 가능하실지 여쭙고자 연락드렸습니다.
아니면 클리앙,서버포럼, okky,2cpu,그누보드 등 가입되어 있으신 개발자 커뮤니티가 있으시다면 해당 커뮤니티에 아래와 비슷하게 게시글을 올려주실수 있을까요?

클리앙 : https://www.clien.net/service/board/park/17797443

연락드릴수 있는방법이 댓글밖에 보이지 않아 이렇게 먼저 연락드립니다.

협찬제안에 긍정적인 검토 부탁드리고 제안이 마음에 드신다면 하기 메일로 메일주시면 제품 보내드리도록 하겠습니다.

sungjh0726@naver.com

협찬제품 링크 : https://incatos.shop/surl/P/11

답글 달기