주 메뉴 열기

wwiki β

바뀜

Docker cli

6,356 바이트 추가됨, 2023년 5월 26일 (금) 08:45
volume
출처: https://docs.docker.com/engine/reference/commandline/cli/
 
==설치==
=== 스크립트를 통한 설치 ===https://docs.docker.com/install/linux/docker-ce/#install-using-the-convenience-script  $ sudo wget -qO- <nowiki>https://get.docker.com/</nowiki> | sh ==== arch계열에서 package manager를 통한 설치==== $ sudo pacman -S docker
===arch linux / manjaro사용자 권한 추가=== $ sudo pacman usermod -S aG docker$USER다시 접속한 후에 적용된다.
==백업commit== $ docker commit CONTAINER IMAGE_NAME==save== $ sudo docker save -o new-postgres[파일명].tar new-postgres이미지명
==복원load== $ docker load < new-postgres[파일명].tar
==attachrun==컨테이너에 접속 $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...] === Options ===-v, --volume list Bind mount a volume --volume-driver string Optional volume driver for the container --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 [컨테이너명]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로 나가야 컨테이너가 종료되지 않는다.
==exec==
컨테이너 명령실행
$ sudo docker exec [컨테이너명] [명령어]
$ sudo docker exec ====옵션====--user [컨테이너명] [명령어사용자명]
==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 [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== $ 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 ==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_namehttps://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 inspect --format='<nowiki>{{range .NetworkSettings.Networks}}</nowiki><nowiki>{{.IPAddress}}</nowiki><nowiki>{{end}}</nowiki>' $INSTANCE_ID == 외부링크 == === Node.js 웹 앱의 도커라이징 ===https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/<br />[[분류:Docker]]
편집
2,431