meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
linux:docker [2017/03/10 11:31] – [Volumes] niziaklinux:docker [2019/04/03 14:09] – [Volumes] niziak
Line 1: Line 1:
  
-  * Docker image - operating system with preconfigured application (service) +  * **Docker image** - operating system with preconfigured application (service) 
-  * Docker container - running instance created from docker image +  * **Docker container** - running instance created from docker image 
-  * Data volume - persistent storage of data outside of container. Can be shared between containers. +  * **Data volume** - persistent storage of data outside of container. Can be shared between containers. 
-  * Dockerfile - is a recipe which describes the files, environment, and commands that make up an image. +  * **Dockerfile** - is a recipe which describes the files, environment, and commands that make up an image. 
-  * docker-compose - tool for defining and running multi-container Docker application (e.g. web app + mysql db). Compose preserves all volumes used by your services. When docker-compose up runs, if it finds any containers from previous runs, it copies the volumes from the old container to the new container.    This process ensures that any data you’ve created in volumes isn’t lost.+  * **docker-compose** - tool for defining and running multi-container Docker application (e.g. web app + mysql db). Compose preserves all volumes used by your services. When docker-compose up runs, if it finds any containers from previous runs, it copies the volumes from the old container to the new container.    This process ensures that any data you’ve created in volumes isn’t lost.
  
 ====== command line ====== ====== command line ======
Line 31: Line 31:
 </code> </code>
  
 +How to run multiple shell commands in docker at once:
 +<code bash>docker run image /bin/bash -c "cd /some/path && some_command"</code>
  
-=== stopping ===+ 
 +==== stopping ====
 ''docker stop'' sends ''SIGTERM'' to PID1 and waits 10 seconds before force kill ''SIGKILL''. ''docker stop'' sends ''SIGTERM'' to PID1 and waits 10 seconds before force kill ''SIGKILL''.
   docker stop ----time=30 foo   docker stop ----time=30 foo
Line 41: Line 44:
 More on handling signals [[https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/]] More on handling signals [[https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/]]
  
-=== restart policy ===+==== restart policy ====
  
 <code bash> <code bash>
Line 86: Line 89:
   * bind-mounted host (original image data are **not copied**)   * bind-mounted host (original image data are **not copied**)
   * volume plugins   * volume plugins
 +
 +Move volume between discs:
 +<code bash>rsync -aqxP jenkins1_jenkins_homeSNAP/ /mnt/NVMe/@jenkins1_jenkins_home</code>
 +
 +===== BTRFS Volume plugin for Docker =====
 +[[https://github.com/anybox/buttervolume]]
 +
  
 Volume destination inside container must be a absolute path. Volume destination inside container must be a absolute path.
Line 91: Line 101:
 Run shell with mounted volume from another docker: Run shell with mounted volume from another docker:
 <code bash>docker run --rm -i --volumes-from dbdata busybox ash</code> <code bash>docker run --rm -i --volumes-from dbdata busybox ash</code>
-<code bash>docker run --rm -i --volumes-from dbdata debian:jessie-slim bash /bin/bash</code>+<code bash>docker run --rm -i --volumes-from dbdata debian:jessie-slim /bin/bash</code>
  
 Single file can be mounted as volume: Single file can be mounted as volume:
Line 111: Line 121:
 </code> </code>
  
-====== Network ======+Transfer volume to another host [[https://www.guidodiepen.nl/2016/05/transfer-docker-data-volume-to-another-host/]]
  
-[[http://blog.oddbit.com/2014/08/11/four-ways-to-connect-a-docker/]] +[[https://github.com/gdiepen/docker-convenience-scripts/blob/master/docker_get_data_volume_info.sh]]
-[[http://stackoverflow.com/questions/26539727/giving-a-docker-container-a-routable-ip-address]]+
  
 ====== data persistence in swarm ====== ====== data persistence in swarm ======
Line 180: Line 189:
  
 ====== ns ====== ====== ns ======
 +
 +
 +====== Issues ======
 +===== endpoint with name portainer already exists in network bridge =====
 +<code bash>
 +# docker start 7cda5b580e16
 +Error response from daemon: endpoint with name portainer already exists in network bridge
 +Error: failed to start containers: 7cda5b580e16
 +</code>
 +
 +https://github.com/moby/moby/issues/23302
 +
 +Typically when you see containers in docker network inspect output with a ep- prefix, that means it can be either of 2 cases -
 +    these are stale endpoints left over in the DB. For those cases, docker network disconnect should help.
 +    these are remote endpoints seen in other nodes that are part of the overlay network. The only way to clean them up are from that specific host.
 +
 +
 +Not helping:
 +<code bash>docker network prune</code>
 +<code bash>docker network disconnect -f bridge portainer</code>
 +
 +
 +
 +Helps:
 +<code bash>/etc/init.d/docker restart</code>