Docker cli 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
출처: https://docs.docker.com/engine/reference/commandline/cli/
 
 
 
==설치==
 
==설치==
  
8번째 줄: 6번째 줄:
 
  $ sudo wget -qO- <nowiki>https://get.docker.com/</nowiki> | sh
 
  $ sudo wget -qO- <nowiki>https://get.docker.com/</nowiki> | sh
  
==== arch계열에서 package manager를 통한 설치====
+
===package manager===
$ sudo pacman -S docker
+
arch linux / manjaro
 +
 
 +
$ sudo pacman -S docker
  
 
===사용자 권한 추가===
 
===사용자 권한 추가===
$ sudo usermod -aG docker $USER
+
$ sudo usermod -aG docker $USER
다시 접속한 후에 적용된다.
+
 
 +
$ reboot
  
==commit==
+
==백업==
$ docker commit CONTAINER IMAGE_NAME
 
==save==
 
 
  $ sudo docker save -o [파일명].tar 이미지명
 
  $ sudo docker save -o [파일명].tar 이미지명
  
==load==
+
==복원==
 
  $ docker load < [파일명].tar
 
  $ docker load < [파일명].tar
  
==run==
+
==docker run==
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
 
  
=== Options ===
+
===한글입력===
-v, --volume list                    Bind mount a volume
+
$ docker run -it -e LC_ALL=C.UTF-8 ubuntu bash
  
--volume-driver string          Optional volume driver for the container
+
==attach==
 
+
컨테이너에 접속
--volumes-from list              Mount volumes from the specified container(s)
 
 
 
==== Network Settings ====
 
참고: https://docs.docker.com/engine/tutorials/networkingcontainers/<syntaxhighlight>
 
--dns=[]          : Set custom dns servers for the container
 
--network="bridge" : Connect a container to a network
 
                      'bridge': create a network stack on the default Docker bridge
 
                      'none': no networking
 
                      'container:<name|id>': reuse another container's network stack
 
                      'host': use the Docker host network stack
 
                      '<network-name>|<network-id>': connect to a user-defined network
 
--network-alias=[] : Add network-scoped alias for the container
 
--add-host=""      : Add a line to /etc/hosts (host:IP)
 
--mac-address=""  : Sets the container's Ethernet device's MAC address
 
--ip=""            : Sets the container's Ethernet device's IPv4 address
 
--ip6=""          : Sets the container's Ethernet device's IPv6 address
 
--link-local-ip=[] : Sets one or more container's Ethernet device's link local IPv4/IPv6 addresses
 
</syntaxhighlight>Supported networks :
 
{| class="wikitable"
 
!Network
 
!Description
 
|-
 
|'''none'''
 
|No networking in the container.
 
|-
 
|'''bridge''' (default)
 
|Connect the container to the bridge via veth interfaces.
 
|-
 
|'''host'''
 
|Use the host's network stack inside the container.
 
|-
 
|'''container'''<nowiki>:<name|id></nowiki>
 
|Use the network stack of another container, specified via its ''name'' or ''id''.
 
|-
 
|'''NETWORK'''
 
|Connects the container to a user created network (using <code>docker network create</code> command)
 
|}
 
주의: <code>--network="host"</code> gives the container full access to local system services such as D-bus and is therefore considered insecure.
 
  
=== 예시 ===
+
$ sudo docker attach [컨테이너명]
$ docker run -it -e LC_ALL=C.UTF-8 ubuntu bash
 
한글입력을 위해서 로케일을 변경할 수 있다.
 
$ docker run -it --entrypoint bash ubuntu
 
--entrypoint string              Overwrite the default ENTRYPOINT of the image
 
  
==attach==
 
Attach local standard input, output, and error streams to a running container
 
$ sudo docker attach [컨테이너명]
 
 
종료시에는 ctrl+p, ctrl+q로 나가야 컨테이너가 종료되지 않는다.
 
종료시에는 ctrl+p, ctrl+q로 나가야 컨테이너가 종료되지 않는다.
  
 
==exec==
 
==exec==
 
컨테이너 명령실행
 
컨테이너 명령실행
$ sudo docker exec [컨테이너명] [명령어]
+
 
 +
$ sudo docker exec [컨테이너명] [명령어]
  
 
====옵션====
 
====옵션====
89번째 줄: 43번째 줄:
  
 
==build==
 
==build==
The <code>docker build</code> command builds Docker images from a Dockerfile and a “context”. A build’s context is the set of files located in the specified <code>PATH</code> or <code>URL</code>.
+
$ sudo docker build -t [이미지명] .
$ docker build [OPTIONS] PATH | URL | -
 
[[Dockerfile]]
 
 
 
-t, --tag list                Name and optionally a tag in the 'name:tag' format
 
 
 
-f                            Specify a Dockerfile
 
 
 
== builder ==
 
Manage builds.
 
 
 
=== prune ===
 
Remove build cache
 
$ docker builder prune
 
 
 
== buildx ==
 
Extended build capabilities with BuildKit
 
 
 
=== ls ===
 
List builder instances
 
$ docker buildx ls
 
 
 
=== create ===
 
Create a new builder instance
 
$ docker buildx create [OPTIONS] [CONTEXT|ENDPOINT]
 
options
 
 
 
--use    Set the current builder instance
 
 
 
=== inspect ===
 
Inspect current builder instance
 
$ docker buildx inspect [NAME]
 
options
 
 
 
--bootstrap    Ensure builder has booted before inspecting
 
 
 
=== rm ===
 
Remove a builder instance
 
$ docker buildx rm [NAME]
 
 
 
== checkpoint ==
 
$ docker checkpoint create
 
 
 
$ docker checkpoint ls [컨테이너]
 
 
 
$ docker checkpoint rm
 
  
 
==cp==
 
==cp==
$ docker cp [container name]:[container 내부 경로] [host 파일경로]
+
$ docker cp [container name]:[container 내부 경로] [host 파일경로]
 
 
== volume ==
 
도커에서 볼륨을 매핑하는 방법은 여러 가지가 있습니다. 그 중 하나는 호스트와 볼륨을 공유하는 것입니다. 도커가 관리하는 볼륨도 있다.(managed volumes)
 
 
 
도커는 하나의 이미지로부터 여러 컨테이너를 만들기 위해서 '''Union File system'''을 사용한다. 유니온 파일 시스템은 원본 이미지에 변경된 내용(diff)를 추가하는 방식이므로, 다른 컨테이너에서 사용 할 수 없다. 애플리케이션에 따라서는 데이터를 다른 컨테이너와 공유 하거나 혹은 호스트에서 접근 할 수 있어야 하는 경우가 있는데, 이때 데이터 볼륨을 사용한다. (출처: https://www.joinc.co.kr/w/man/12/docker/Guide/DataWithContainer)
 
 
 
=== prune ===
 
Remove all unused local volumes
 
$ docker volume prune
 
 
 
== network ==
 
 
 
=== ls ===
 
$ docker network ls [OPTIONS]
 
  
 
== system ==
 
== system ==
Usage:  docker system COMMAND
 
 
Manage Docker
 
 
Commands:
 
 
df          Show docker disk usage
 
 
events      Get real time events from the server
 
 
info        Display system-wide information
 
 
prune      Remove unused data
 
 
=== prune ===
 
 
도커를 사용하다보면 더이상 사용하지 않는 컨테이너와 이미지들이 저장공간을 필요없이 차지하게 된다. 이런 데이터들을 한 번에 정리할 수 있는 명령어.
 
도커를 사용하다보면 더이상 사용하지 않는 컨테이너와 이미지들이 저장공간을 필요없이 차지하게 된다. 이런 데이터들을 한 번에 정리할 수 있는 명령어.
$ docker system prune --all --force
 
 
=== df ===
 
볼륨 크기를 볼 수 있어 디스크 정리할 때 사용할 수 있다.
 
 
Show docker disk usage
 
 
Options:
 
 
--format string  Pretty-print images using a Go template
 
 
-v, --verbose        Show detailed information on space usage
 
 
== config ==
 
Create a config from a file or STDIN
 
$ docker config create [config] [file]
 
 
$ docker config inspect [config]
 
 
== update ==
 
Update configuration of one or more containers
 
 
--cpus : Number of CPUs
 
$ docker update --cpus 2 container_name
 
https://docs.docker.com/engine/reference/commandline/update/#options
 
 
== stats ==
 
Display a live stream of container(s) resource usage statistics
 
$ docker stats
 
 
== info ==
 
Display system-wide information
 
$ docker info
 
 
== inspect ==
 
Return low-level information on Docker objects
 
$ docker inspect [OPTIONS] NAME|ID [NAME|ID...]
 
  
=== Get an instance’s IP address ===
+
docker system prune -a -f
$ docker inspect --format='<nowiki>{{range .NetworkSettings.Networks}}</nowiki><nowiki>{{.IPAddress}}</nowiki><nowiki>{{end}}</nowiki>' $INSTANCE_ID
 
  
== 외부링크 ==
+
==Dockerfile==
  
=== Node.js 웹 앱의 도커라이징 ===
+
===한글입력===
https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/
+
ENV LC_ALL=C.UTF-8
<br />
 
[[분류:Docker]]
 

wwiki에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 Wwiki:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)