Thursday 9 June 2022

Mount Volumes via Swarm Services in Docker Container

 

sudo docker volume create my_vol

my_vol


sudo docker run -d --name myweb1 -v my_vol:/var/www/html nginx

c5ae265122b7a8f3d93de5f4d427d14906bd73fe95c949d0c8ce91b57224114e


sudo docker inspect myweb1 | grep my_vol

               "my_vol:/var/www/html"

               "Name": "my_vol",

               "Source": "/var/lib/docker/volumes/my_vol/_data",


sudo docker run -d --name myweb2 --mount src=my_vol,dst=/var/www/html nginx

ac3d81d20832b4e0b18a7485f4c0710f930b11e721864074e0d50ee71c40e6b5


sudo docker inspect myweb2 | grep my_vol

                   "Source": "my_vol",

               "Name": "my_vol",

               "Source": "/var/lib/docker/volumes/my_vol/_data",


sudo docker ps

CONTAINER ID   IMAGE     COMMAND                  CREATED              STATUS              PORTS     NAMES

bbc98d9e7095   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    myweb2

c5ae265122b7   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    myweb1


sudo docker rm -f myweb1 myweb2

myweb1

myweb2


#Create containers and use bind mounts

sudo docker run -d --name myweb1 -v type=bind,source="$(pwd)"/html,target=/var/www/html nginx

9c84237af269eae66f7c5358f8af7cd805d0a162b5b58fc3d84a1a2242266c13


sudo docker inspect myweb1 | grep bind

               "Destination": "type=bind,source=/home/devops/html,target=/var/www/html",

               "type=bind,source=/home/devops/html,target=/var/www/html": {}


sudo dockun -d --name myweb2 -v "$(pwd)"/html:/var/www/html nginx

b6ea4a246aa85247a5d6f9f4e79788679bd7ca007a32b3a3c8532798f2eb4063


sudo docker inspect myweb2 | grep bind

               "Type": "bind",


sudo docker run -d --name myweb3 -v "$(pwd)"/html:/var/www/html:ro nginx

8bcefece18b010226f102ef8fb484bed4297ed1f5423a1603728433eca99eb7c


sudo docker inspect myweb3 | grep bind

               "Type": "bind",


sudo docker  ps

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES

8bcefece18b0   nginx     "/docker-entrypoint.…"   9 seconds ago    Up 8 seconds    80/tcp    myweb3

b6ea4a246aa8   nginx     "/docker-entrypoint.…"   12 seconds ago   Up 10 seconds   80/tcp    myweb2

9c84237af269   nginx     "/docker-entrypoint.…"   15 seconds ago   Up 13 seconds   80/tcp    myweb1


sudo docker rm -f myweb1 myweb2 myweb3

myweb1

myweb2

myweb3


#Create temporary ram-based file system

sudo docker run -d --name myweb1 --mount type=tmpfs,destination=/app nginx

4c50e69118cb9b44ce3be2113e8d88d96c2a02f6669be362e05d5fc09386ffaa


sudo docker inspect myweb1 | grep tmpfs

                    "Type": "tmpfs",

                "Type": "tmpfs",


sudo docker run -d --name myweb2 --tmpfs /app nginx

c7b07379d1ddc6978bf1a6c0f9a1dc497ec00d0aed320be71c28c066a14a2ac8


sudo docker inspect myweb2 | grep Tmpfs -A1

            "Tmpfs": {

                "/app": ""


sudo docker rm -f myweb1 myweb2

myweb1

myweb2


#: Create a container from alpine image with my_vol volume

sudo docker run -it --name webapp -v my_vol:/var/www/html alpine

Unable to find image 'alpine:latest' locally

latest: Pulling from library/alpine

2408cc74d12b: Pull complete

Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c

Status: Downloaded newer image for alpine:latest


#execute commands to create three files inside the /var/www/html directory

sudo docker run -it --name webapp -v my_vol:/var/www/html alpine

/ # cd /var/www/html

/var/www/html # touch test1 test2 test3 && mkdir testdir

/var/www/html # ls

test1    test2    test3    testdir

/var/www/html # exit


sudo docker ps -all

CONTAINER ID   IMAGE     COMMAND     CREATED              STATUS                      PORTS     NAMES

af2648ee06e4   alpine    "/bin/sh"   About a minute ago   Exited (0) 52 seconds ago             webapp


sudo docker rm af2648ee06e4

af2648ee06e4


No comments:

Post a Comment