docker 명령어& 내용 정리

coc·2024년 4월 24일
0

명령어

cmd에 입력하기

1. 도커 다운내역 확인

docker images

2. 도커 이미지 삭제

docker rmi [삭제할 이미지 이름] 또는 [Image Id = docker images에서 확인하면 된다]

3. cmd 화면 정리

window는 cls 이고 리눅스,mac은 clear이다

4. 도커 프로세서 확인 (실행중인 컨테이너)

docker ps

5. 도커 프로세서 확인 (종료된 컨테이너)

unable to delete a88c3e85e887 (must be forced) - image is being used by stopped container 8fe99d6fa543
이게 뜨면 종료된 컨테이너를 봐야한다

  • docker ps -a 이렇게 치면 모든 컨테이너를 확인할수 있다

6. 컨테이너 삭제

docker rm [컨테이너 아이디] ->docker ps -a 에서 보면 컨테이너 아이디가 있다

  • 컨테이너 삭제후 다시 이미지를 삭제 해야 완전히 삭제 된거다.

7. 도커 작동 정지

docker stop [컨테이너 아이디] -> docker ps에서 dontainer ID를 확인

8. 도커 시작

docker run [이미지 이름]

9. 도커 백그라운드로 run

docker run -d {이미지 이름}

  • 눈에 안보이게 띄운다는 뜻이다 docker run 보다는 백그라운드로 돌리기

10. 포트포워딩(중요)

docker run -d -p [포트번호:포트][이미지이름]

ex 1) docker run -d -p 8080:80 httpd
외부에서 8080이라고 하면 80으로 접속되게 한다는것이다
이렇게 하는이유는 httpd는 80으로 내부를 돌기때문이다

ex 2) docker run -d -p 8081:80 nginx
위에하고 비슷한데 여기서는 nginx라는 이미지를 다운받지 않았다
하지만 이렇게 명령어를 입력하면 nginx이미지가 다운받아지고 위 처럼 똑같이 동작을 한다.

ex 3) docker run -d [이미지이름]
docker run -d httpd 이렇게 하면 다운받지 않았으면 다운받고 나서 run한다.

ex 4) docker run -d --name [만들 이름][다운받을 이미지]
docker run -d --name myubuntu ubuntu
이렇게 입력하면 컨테이너 이름을 만들어줄 수 있다
문제는 이렇게 하면 이미지는 다운받아지는데 실행은 안된다
그리고 docker run -dit --name myubuntu ubuntu 이걸로 다시 입력하면

  • Error response from daemon: Conflict. The container name "/myubuntu" is already in use by container "bcd2c56dcd6f0e13b01729f48101733b7b73caf76d792de3ecf1e0eb3c8d19f1". You have to remove (or rename) that container to be able to reuse that name.
    이러한 에러가 뜬다 = 종료된컨테이너를 들고 있다는 거다
    이게 뜨면 docker ps -a 로 컨테이너 id를 확인후 docker rm [컨테이너 ID] 를 치고 지운후 다시 docker run -dit --name myubuntu ubuntu 를 입력 하면 들고 있는 이미지를 실행한다.

11. 터미널모드로 상호작용(백그라운드)

docker run -dit [이미지 이름]
ex 1)docker run -dit --name myubuntu ubuntu

ex 2) docker run dit -p 8080:80 httpd (중요)
이렇게 해도 백그라운드로 접속되고 이미지가 없으면 다운까지 받아진다

12. docker attach는 실행중인 컨테이너에 접근하는 명령어이다.(bash모드일때 사용)

docker attach [컨테이너 id]를 입력하면 도커 내부로 들어갈수 있다

13. 실행중인 컨테이너에 접근할때 사용하는 명령어 = commend를 변경

docker exec -it [컨테이너 id] bash

  • docker exec -it [컨테이너 id] bash
    이렇게 하면 command(docker ps 로 확인하면된다) 를 bash라는 모드로 실행을 하면서 -it로 진입(=리눅스)된다

14. docker run 하고 그 이후 동작이 안될경우

cmd에서 도커 run하고 중지할때는 다른 cmd 창을 켜서 도커를 중지하기 아니면 ctrl+c하면 나가진다

15. 도커 완전히 삭제

(1)프로세스 종료
1. docker ps
2. docker stop 컨테이너ID

(2)종료된 컨테이너 삭제
1. docker ps -a
2. docker rm 컨테이너ID

(3)이미지
1.docker images
2.docker rmi 이미지이름

위 도커 삭제를 명령어를 한번에 끝내기(매우 중요 ) = 한 번에 다 삭제 되는게 아니라 한개씩 삭제 된다

windows

  1. for /f "delims=" %A in ('docker ps -q') do (set rm1=%A)
  2. for /f "delims=" %A in ('docker ps -a -q') do (set rm2=%A)
  3. for /f "delims=" %A in ('docker images -q') do (set rm3=%A)
  4. docker stop %rm1%
  5. docker rm %rm2%
  6. docker rmi -f %rm3%

복사용

for /f "delims=" %A in ('docker ps -q') do (set rm1=%A)
for /f "delims=" %A in ('docker ps -a -q') do (set rm2=%A)
for /f "delims=" %A in ('docker images -q') do (set rm3=%A)
docker stop %rm1%
docker rm %rm2%
docker rmi -f %rm3%

linux, mac , git bash(이거 추천) 명령어

  1. docker stop $(docker ps -q) 또는 docker stop $(docker ps -a -q)
  2. docker rm $(docker ps -a -q)
  3. docker rmi -f $(docker images -q)

복사용

docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
docker rmi -f $(docker images -q)

16. volumn으로 폴더를연결하면 Vs에서 html하나 만들어서 변경할수있다

docker run -d -p [포트번호]:80 경로 :/usr/local/apache2/htdcos [이미지이름]

ex)docker run -d -p 8080:80 -v c:\users[경로이름]\webapp:/usr/local/apache2/htdcos httpd
불륨연결

17

이거는 이미지들끼리 의존하고 있기 때문에 삭제가 안되는거다 그러므로 의존 안하는것부터삭제한다 = 내가만든 이미지부터 먼저 삭제하면된다
Error response from daemon: conflict: unable to delete a8257c41c9c1 (cannot be forced) - image has dependent child images

여기는 내용 정리

내가 뭔가를 다운받으면서 실행을 시킬거면
docker run -d [이미지이름]

ex) docker run -d ubuntu
docker ps 를 하면 죽어있다 왜냐하면 이거는 os여서 실행시킬게 없기때문에 바로 꺼진다

ex) docker run -d -p 8080:80 httpd
docker ps 를 하면 살아있다 왜냐하면 이거는 os를 설치하고 그리고 서버를 설치하고
서버를 실행시킨 img를 들고있기 때문에 살아있다
-d를 붙여야 cmd에서 제어가 가능하다

내부적으로 프로세스가 들고있지 않은것들은
docker run -dit [이미지이름] bash
ex)docker run -dit ubuntu bash
command가 bash모드가 되어야 죽지 않는다
docker attach [컨테이너 id]를 쓰면 내부를제어할수 있다

  1. os (ubuntu) 만설치 =여기는 attach 가능
    docker run -dit ubuntu bash
    docker attach 컨테이너ID

  2. while process (httpd) = 여기는 command bash가 아니기 때문 attach사용 x
    docker run -d -p 8080:80 httpd 또는docker run -dit -p 8080:80 httpd
    둘중에 아무거나 써도 상관없다
    docker exec -it 컨테이너ID bash

profile
시작

0개의 댓글

관련 채용 정보