도커:컨테이너 관련: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
(새 문서: {{Docker}} == 개요 == 컨테이너 사용과 관련된 기초적인 지식. = 기초 사용 = == 생성 == * 기본적으로 <code>docker run 옵션 이미지이름:태그</code...)
 
잔글편집 요약 없음
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{Docker}}
{{Docker}}


== 개요 ==
==개요==
컨테이너 사용과 관련된 기초적인 지식.
컨테이너 사용과 관련된 기초적인 지식.


= 기초 사용 =
=기초 사용=


== 생성 ==
==생성==


* 기본적으로 <code>docker run 옵션 이미지이름:태그</code> 형태로 컨테이너를 생성한다.
*기본적으로 <code>docker run 옵션 이미지이름:태그</code> 형태로 컨테이너를 생성한다.
* 로컬에 이미지가 없으면 자동으로 이미지를 받아온다.
*로컬에 이미지가 없으면 자동으로 이미지를 받아온다.


옵션은 아래와 같은 것들이 있다. 가능하면 옵션들은 이미지 이름 앞에 두는 편이 좋다.
옵션은 아래와 같은 것들이 있다. 가능하면 옵션들은 이미지 이름 앞에 두는 편이 좋다.
50번째 줄: 50번째 줄:
|}
|}


== 이외 사용 ==
==이외 사용==
{| class="wikitable"
{| class="wikitable"
!의도
!의도
59번째 줄: 59번째 줄:
|이미 만들어진 컨테이너가 종료되었을 때 다시 실행한다.
|이미 만들어진 컨테이너가 종료되었을 때 다시 실행한다.
|docker start 컨테이너
|docker start 컨테이너
|-
|재시작 관련.
|컨테이너가 시작될 때
docker exec -it samwiki /bin/bash와 같이 관리자권한으로 실행된 상태에서..
nano start.sh 등으로 파일을 작성하고 그 안에 내용을 작성한다.<syntaxhighlight lang="bash">
#!/bin/bash
service mysql start
등등 실행할 코드.
</syntaxhighlight>
|
|-
|-
|종료
|종료
72번째 줄: 84번째 줄:
|
|
|docker exec -it 컨테이너명 /bin/bash
|docker exec -it 컨테이너명 /bin/bash
|-
|컨테이너 삭제
|
|docker rm 컨테이너
|}
|}


= 파일 관련 =
=파일 관련=
본 서버와 파일을 교환하는 등의 작업이 필요하다.
본 서버와 파일을 교환하는 등의 작업이 필요하다.
{| class="wikitable"
{| class="wikitable"
102번째 줄: 118번째 줄:
|}
|}


= 컨테이너 옵션 변경 =
=컨테이너 옵션 변경=
컨테이너가 실행되고 있는 상황에서 옵션을 변경할 수 없다. 굳이 컨테이너를 이미지화 했다가 다시 옵션을 주어 실행해야 한다.
컨테이너가 실행되고 있는 상황에서 옵션을 변경할 수 없다. 굳이 컨테이너를 이미지화 했다가 다시 옵션을 주어 실행해야 한다.



2024년 3월 14일 (목) 16:15 기준 최신판

  1. 틀:Docker


  1. Docker
  2. 도커:설치
  3. 사용법
    1. 도커:이미지 관련
    2. 도커:컨테이너 관련

개요[편집 | 원본 편집]

컨테이너 사용과 관련된 기초적인 지식.

기초 사용[편집 | 원본 편집]

생성[편집 | 원본 편집]

  • 기본적으로 docker run 옵션 이미지이름:태그 형태로 컨테이너를 생성한다.
  • 로컬에 이미지가 없으면 자동으로 이미지를 받아온다.

옵션은 아래와 같은 것들이 있다. 가능하면 옵션들은 이미지 이름 앞에 두는 편이 좋다.

옵션 설명
-v 호스트경로:컨테이너경로 호스트의 파일을 컨테이너에 연결한다.(-v옵션 여러 개 사용 가능)
--expose 포트번호 다른 컨테이너에서 접속할 수 있는 포트번호를 설정한다.
--link 컨테이너:별칭 컨테이너를 다른 컨테이너와 연결해서 실행한다.(연결할 것이 실행되어 있어야 함)

호스트파일에 IP주소가 설정되어 별칭으로 접속할 수 있다.

/별칭:포트번호/연결한컨테이너하위디렉터리

(포트번호는 docker ps로 확인 가능)

-p 호스트포트:컨테이너포트 포트를 연결한다.
-d 데몬으로 실행(백그라운드에서 실행)
--privileged 모든 기능을 사용할 수 있게끔, 권한을 부여한다는 의미.

IP주소 등 네트워크 설정을 만질 수 있다.

/sbin/init과 함께 사용한다.

-e 환경변수 설정. 보통 다음과 같이 UTF-8로 인코딩함을 알려주기 위해 사용.

-e LANG=ko_KR.UTF-8

--restart=always docker를 재시작 해도 자동으로 구동하라는 옵션.

이외 사용[편집 | 원본 편집]

의도 설명 방법
재실행 이미 만들어진 컨테이너가 종료되었을 때 다시 실행한다. docker start 컨테이너
재시작 관련. 컨테이너가 시작될 때

docker exec -it samwiki /bin/bash와 같이 관리자권한으로 실행된 상태에서..

nano start.sh 등으로 파일을 작성하고 그 안에 내용을 작성한다.
#!/bin/bash

service mysql start
등등 실행할 코드.
종료 도커를 재시작 할 때 도커 내부에서 서비스도 함께 종료된다.

systemctl apache2 start, service start mysql와 같은 명령으로 서비스를 실행해주어야 한다.

docker stop 컨테이너
현재 실행 컨테이너 확인 -a 옵션을 붙이면 종료된 컨테이너도 볼 수 있다. docker ps
컨테이너 내부로 접속 docker exec -it 컨테이너명 /bin/bash
컨테이너 삭제 docker rm 컨테이너

파일 관련[편집 | 원본 편집]

본 서버와 파일을 교환하는 등의 작업이 필요하다.

의도 설명 방법
호스트에서 컨테이너로 호스트의 파일을 컨테이너로 옮긴다. docker cp 호스트경로 컨테이너:컨테이너경로
컨테이너에서 호스트로 컨테이너의 파일을 호스트로 옮긴다. docker cp 컨테이너:컨테이너경로 호스트경로

ex) docker cp hello:/etc/file.conf ./ # 현재경로로 컨테이너의 파일을 꺼낸다.

변경파일 확인 컨테이너가 실행되며 변경된 파일목록 출력.

기준은 컨테이너를 생성한 이미지 기준.

A: 추가된 파일

C: 변경된 파일

D: 삭제된 파일

docker diff 컨테이너

컨테이너 옵션 변경[편집 | 원본 편집]

컨테이너가 실행되고 있는 상황에서 옵션을 변경할 수 없다. 굳이 컨테이너를 이미지화 했다가 다시 옵션을 주어 실행해야 한다.

컨테이너를 이미지화[편집 | 원본 편집]

보통 컨테이너를 돌리고 있는데 여기에 포트를 추가하거나 볼륨을 추가하고 싶을 때 거쳐야 한다.

과정 설명 방법
이미지로 저장 변경사항을 이미지로 생성한다.
옵션 설명
-a, --author="생성자" 생성자 정보를 기입한다.
-m, --message="코멘트" 코멘트를 단다.
docker images로 확인한다.

예시) docker commit -a "id8436" -m "JHwiki" 94b5dde4a907 id8436/jhwiki

docker commit 옵션 컨테이너 이미지:태그

이미지, 태그는 소문자로만 가능하다.

포트, 볼륨 추가하기[편집 | 원본 편집]

기존 사용중인 컨테이너에 포트, 볼륨, 옵션을 변경하려면 새로 만드는 방법밖에 없다.(이부분은 굉장히 아쉽다;;)

  1. 컨테이너를 이미지로 만든다.(방법은 위 참조)
  2. 기존 컨테이너를 지운다.
  3. 필요한 포트, 볼륨옵션을 주어 다시 실행.