도커:컨테이너 관련: 두 판 사이의 차이
(새 문서: {{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 기준 최신판
개요[편집 | 원본 편집]
컨테이너 사용과 관련된 기초적인 지식.
기초 사용[편집 | 원본 편집]
생성[편집 | 원본 편집]
- 기본적으로
docker run 옵션 이미지이름:태그
형태로 컨테이너를 생성한다. - 로컬에 이미지가 없으면 자동으로 이미지를 받아온다.
옵션은 아래와 같은 것들이 있다. 가능하면 옵션들은 이미지 이름 앞에 두는 편이 좋다.
옵션 | 설명 |
---|---|
-v 호스트경로:컨테이너경로 | 호스트의 파일을 컨테이너에 연결한다.(-v옵션 여러 개 사용 가능) |
--expose 포트번호 | 다른 컨테이너에서 접속할 수 있는 포트번호를 설정한다. |
--link 컨테이너:별칭 | 컨테이너를 다른 컨테이너와 연결해서 실행한다.(연결할 것이 실행되어 있어야 함)
호스트파일에 IP주소가 설정되어 별칭으로 접속할 수 있다. /별칭:포트번호/연결한컨테이너하위디렉터리 (포트번호는 docker ps로 확인 가능) |
-p 호스트포트:컨테이너포트 | 포트를 연결한다. |
-d | 데몬으로 실행(백그라운드에서 실행) |
--privileged
|
모든 기능을 사용할 수 있게끔, 권한을 부여한다는 의미.
IP주소 등 네트워크 설정을 만질 수 있다.
|
-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 컨테이너 |
컨테이너 옵션 변경[편집 | 원본 편집]
컨테이너가 실행되고 있는 상황에서 옵션을 변경할 수 없다. 굳이 컨테이너를 이미지화 했다가 다시 옵션을 주어 실행해야 한다.
컨테이너를 이미지화[편집 | 원본 편집]
보통 컨테이너를 돌리고 있는데 여기에 포트를 추가하거나 볼륨을 추가하고 싶을 때 거쳐야 한다.
과정 | 설명 | 방법 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
이미지로 저장 | 변경사항을 이미지로 생성한다.
docker images 로 확인한다.
예시) docker commit -a "id8436" -m "JHwiki" 94b5dde4a907 id8436/jhwiki |
docker commit 옵션 컨테이너 이미지:태그
이미지, 태그는 소문자로만 가능하다. |
포트, 볼륨 추가하기[편집 | 원본 편집]
기존 사용중인 컨테이너에 포트, 볼륨, 옵션을 변경하려면 새로 만드는 방법밖에 없다.(이부분은 굉장히 아쉽다;;)
- 컨테이너를 이미지로 만든다.(방법은 위 참조)
- 기존 컨테이너를 지운다.
- 필요한 포트, 볼륨옵션을 주어 다시 실행.