도커를 다시 쓰려고 docker run 명령어를 해보면, 다음과 같은 오류가 뜰때가 있다.
#도커 이미지 확인
sudo docker images
#도커 이미지 ID 이용하여 새로운 컨테이너 제작
sudo docker run -i -t -d -p 9080:8080 --name arvm 3c4869872aac
jun@ubuntu:~/jun/CTF/20220226/arvm$ sudo docker run -i -t -d -p 9080:8080 --name arvm 3c4869872aac
docker: Error response from daemon: Conflict. The container name "/arvm" is already in use by container "a7f4227f8b123eb3dda71d7bf8f03eb496bd19ecf8f3d07f5acb86b1ce370b46". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
오늘은 이 문제를 해결해보자.
핵심은
docker run은 새 컨테이너를 생성하고 시작하는 명령어이다. (create + start)
docker create : 도커 이미지를 보고 새로운 컨테이너를 생성. 시작(start)은 X
docker start : 중지된(stop) 컨테이너를 시작(start) 실행은(exec) X
이다.
즉, docker run은 존재하는 컨테이너를 단순히 시작해주는 명령어가 아니라,
새로운 컨테이너를 생성하고 시작해주는 명령어이기 때문에,
이미 이전에 create 혹은 run을 이용해 컨테이너를 만들어 두고 (docker ps -a 에 있으면)
docker run 명령어를 실행하면
is already in use by container "[container ID]"
와 같은 오류가 뜨게 되는것이다!!
이를 해결하려면
docker run [container ID]
명령을 이용해 container를 run상태로 만든(start)후에 exec을 이용해 container를 이용하면된다.
docker ps와 docker ps -a의 차이 그리고 running container와 아닌 container
docker ps는 docker image를 통해 생성된 docker container의 정보를 출력해주는 명령어이다.
sudo docker ps
sudo docker ps -a
와 같은 명령을 통해 docker container의 정보를 확인할 수 있다.
그런데 docker ps와 docker ps -a의 차이는 무엇일까??
docker ps는 running 상태인 컨테이너만 보여주는데
docker ps -a 는 모든 컨테이너를 보여준다.
그렇다면 running 상태의 컨테이너와 그렇지 않은 컨테이너의 차이는 무엇일까??
running 상태의 컨테이너는 : exec 명령으로 바로 컨테이너에 접속할 수 있다.
running 상태가 아닌 컨테이너는 : docker start 명령을 통해 running 상태로 만들어 준 후, exec으로 컨테이너에 접속해야한다.
이로써 비로소 exec 명령을 통해 도커 컨테이너에 접속할 수 있다.
#실행중인 컨테이너 접속
sudo docker exec -it arvm /bin/bash
'Configuration' 카테고리의 다른 글
Ubuntu LLVM 설치 및 버전확인 방법 (export LLVM_CONFIG) (1) | 2024.02.10 |
---|---|
sudo시에 E: Could not get lock /var/lib/dpkg/lock-frontend 해결 (2) | 2023.11.22 |
v8 engine Fuzzing을 위한 v8 컴파일 및 Fuzzilli Configuration (0) | 2022.09.03 |
우리 도커 이상한 애 아니다. (도커 사용법 / Docker file / Docker image / Docker container 와의 관계) (0) | 2022.03.06 |
그러니까 도커는.. (docker create/start/run/stop/rm/exec) (0) | 2022.03.06 |