✏️ 이미지 실행하기

  • 도커에서 image 를 실행시키려면 아래의 명령어를 입력해야한다.
    • 아래 명령어는 이미지를 실행시키는 아주 기본적인 명령어이다.
docker run {image}

# ex)
docker run mysql

✏️ 이미지 옵션 설정후 실행시키기

  • 이미지를 실행시킬 때 다양한 옵션을 추가해서 실행시킬 수 있다.

📍 name 설정하기

  • 랜덤으로 설정되는 name 값을 지정할 수 있다.
docker run --name {이름} {이미지}

docker run --name hi myslq

📍 데몬 이미지 실행후 작업 이어서 하기

  • 데몬은 이미지를 직접 종료시키지 않는한 계속 실행상태가 유지되는 이미지를 뜻한다.
    • 데몬 이미지를 실행할경우 이미지를 종료하지 않는 한 같은 bash 에서 추가적인 작업을 할 수 없게된다.
    • 문제를 해결하기 위해 이미지를 실행할 때 데몬모드를 설정해 실행시킬 수 있다.
docker run -d {이미지}

  • 위 명령어를 실행하면 bash 를 새로 실행하지 않아도 데몬 이미지를 실행시키며 추가작업이 가능하다.

📍 이미지 종료시 삭제하기

  • 이미지는 레시피를 저장하고 허브에 업로드하고, 다운로드하는것이 아주 편리해 보통 종료하지않고 전부 사용하면 삭제하는게 보통이다.
    • 별도의 설정을 하지 않은 이미지는 종료후 직접 삭제 명령을 해줘야 하지만,
      생성할 때 아래 명령어를 추가하면 중지시 자동 삭제된다.
docker run --rm {이미지}

📍 포트 포워딩

  • 기본 OS 에서 리눅스 내의 도커의 이미지에 접근하는 것은 불가능하지만 포트포워딩을 통해 접근하는 것은 가능하다.
    • 아래 명령어는 리눅스 81 포트로 들어온 요청을 도커의 80포트로 포워딩 시켜주는 명령어이다.
docker run -p 81:80 {이미지}

📍 리눅스 재부팅해도 이미지 계속 실행시키기

docker run --restart="always" {이미지}

📍 볼륨 기능 적용하기

  • 도커도 os 처럼 directory 로 파일들이 관리된다.
    • 도커 내부에 어떠한 파일을 만들어 작동시키기 위해서 특정한 위치에 파일을 위치시켜야한다.
    • 파일 경로가 가독성이 떨어져 유지보수가 어렵다고 판단되면 볼륨기능을 사용해 해결할 수 있다.
  • 볼륨 기능은 포트포워드 같이 임의의 경로를 실제 도커 내부의 경로로 포워딩 시키는 기능이다.
    • 이 기능을 사용하면 유지보수 뿐 아니라 도커 내부로 접근하지 않고,
      외부에서 해당 경로를 이용해 작업을 수행할 수 있다.
    • 만약 이미지의 포트나 이름등 속성을 변경해야할 경우
      이미지를 삭제하면 지금까지 했던 작업이 사라지지만,
      볼륨으로 생성한 경로의 파일은 삭제되지 않는다.
      - 즉, 볼륨을 통해 수행된 작업은 이미지 삭제후, 다른 이미지와 견결시켜도 그대로 남아있게된다.
docker run -v {임의의 경로}:{실제 경로} {이미지}

# 예시 ( \ 는 줄바꿈을 해도 이어주는 기능이다.)
docker run \
		-v /docker_projects/nginx_1/volumes/usr/share/nginx/html\ # 임의의 경로 (호스트)
		:\
		/usr/share/nginx/html \ # 실제 경로 (게스트)
		nginx

📍 모든 명령어 적용해 nginx 실행하기

  • 80 포트에서 80 포트로 포워딩하는경우 -p 80 만 적어줘도 된다.
docker run -d \
		--name=nginx_1 \
		--restart="always" \
		-v /docker_projects/nginx_1/volumes/usr/share/nginx/html:\
		/usr/share/nginx/html \
		--rm -p 80 \
		nginx

✏️ 이미 실행중인 이미지 설정 변경하기

  • 아래 명령어를 입력해 실행중인 이미지에 명령을 할 수 있다.
    • exec 는 execute 의 약자이다.
docker exec {이미지 name} {원하는 명령}

# ex)
docker exec nginX_1 pwd

위의 명령어를 사용하면 특정 이미지를 대상으로한 명령을 수행할 수 있다.

📍 상호 작용이 필요한 명령어일 경우

  • 위의 명령어로 특정 이미지에 명령을 할 수 있지만 상호작용이 필요한 명령어는 수행할 수 없다.
    • 상호작용이 필요없는 명령어
      • ll, ls pwd 등 한번의 입력으로 명령이 수행되는 경우
    • 상호작용이 필효한 명령어
      • 명령어 입력후 yn 또는 페스워드등 추가적인 상호작용이 필요한 경우
  • 이 경우엔 아래 명령어를 추가해 문제를 해결할 수 있다.
docker exec -it {이미지 name} {명령} 

📍 -it 으로도 해결이 안될경우

  • docker 바깥에서 명령어로만 해결하기엔 너무 복잡하거나 작업수행이 어려운 상황이 있다.
    • 이 경우엔 해당 이미지 내부로 접근해 내부에서 직접 명령어를 입력해 문제를 해결할 수 있다.
docker exec -it {이미지 name} bash

  • 위 명령어를 입력하면 이미지가 실행되고있는 sell 이 실행된다.
    • 작업 완료후 나갈 땐 exit 으로 나갈 수 있다.
profile
잘못된 내용 PR 환영

0개의 댓글