★ WELCOME ★

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
articles:linux:docker-reference-page [2022/02/12 15:24]
tom [Base Questions]
articles:linux:docker-reference-page [2022/02/12 16:32] (current)
tom [Packaging & Distributing Your Own Docker Containers into Images]
Line 64: Line 64:
 # To enter into a terminal of a running container # To enter into a terminal of a running container
 docker exec -it [container name or last 12 positions of container id] /bin/bash docker exec -it [container name or last 12 positions of container id] /bin/bash
 +
 +# To list Docker networks:
 +docker network ls
  
 </code> </code>
Line 75: Line 78:
 ===== Docker Compose ===== ===== Docker Compose =====
  
-Placeholders are in square [] brackets and comments are in curly {} braces in the template below. Note that in the template I have laid out 2 different Docker containers in a single compose file. When you do this, a common Docker network is created.+Placeholders are in square [] brackets and comments are in curly {} braces in the template below. Note that in the template I have laid out 2 different Docker containers in a single compose file. When you do this, a common Docker network is created. Also, indentation must be precise for this to work (supposedly).
  
 <code> <code>
 version:'3' {This is the version of Docker Compose the script is for.} version:'3' {This is the version of Docker Compose the script is for.}
 services: services:
-   [user assigned name]: {same as docker run --name flag} +  [user assigned name]: {same as docker run --name flag} 
-       image: [image name][:version] {name of image from Docker hub} +    image: [image name][:version] {name of image from Docker hub} 
-       ports: +    ports: 
-           -[host port]:[container application port] +      - [host port]:[container application port] 
-       environment: +    volumes: 
-           - [environment setting]=[assigned value] +      - [user reference name]:[container path] {for a "named" volume}; or 
-   [user assigned name]: {same as docker run --name flag} +      - [host path]:[container path] {for a "defined" volume}; or 
-       image: [image name][:version] {name of image from Docker hub} +      - [container path] {for an anonymous volume} 
-       ports: +    environment: 
-           -[host port]:[container application port] +      - [environment setting]=[assigned value] 
-       environment: +  [user assigned name]: {same as docker run --name flag} 
-           - [environment setting]=[assigned value]      +    image: [image name][:version] {name of image from Docker hub} 
- </code>+    ports: 
 +      - [host port]:[container application port] 
 +    volumes: 
 +      - [user reference name]:[container path] {for a "named" volume}; or 
 +      - [host path]:[container path] {for a "defined" volume}; or 
 +      - [container path] {for an anonymous volume} 
 +    environment: 
 +      - [environment setting]=[assigned value] 
  
 +# For two containers to share a volume, you can set that after defining named volumes above and adding the volume after the container definition and using an already defined name (i.e).
  
 +volumes:
 +  db-data: {assuming db-data was established above}
 +    driver: local {this is needed but not sure why}
 +
 +</code>
 +
 +The contents of the file above would be saved in a text file saved with a .yaml extension.
 +
 +To start a Docker compose file, run:
 +
 +<code>
 +docker-compose [flags] [command]
 +  -f [name of yaml file] 
 +
 +Commands:
 +
 +  up = start a Docker Compose configuration
 +  down = stop a Docker Compose configuration
 +
 +Examples:
 +
 +docker-compose -f mycontainers.yaml up
 +docker-compose -f mycontainers.yaml down
 +</code>
 +
 +===== Persistent Data with Docker Volumes =====
 + 
 +You need to do this when you want to store data/files between restarts of a Docker container. 
 +
 +You have three types of Docker volumes, i.e.
 +
 +<code>
 +# A defined volume (Note: I am only showing the -v flag).
 +docker run -v [host folder]:[container folder]
 +docker run -v /home/myvolume/data:/var/lib/mysql/data
 +
 +# An anonymous volume (Note: I am only showing the -v flag and I don't necessarily know where the persistent storage is kept but should be below /var/lib/docker/volumes).
 +docker run -v [container folder]
 +docker run -v /var/lib/mysql/data
 +
 +# A named volume (Note: I am only showing the -v flag, again I may not know where the storage is kept but should be below /var/lib/docker/volumes, plus I am able to reference it better than an anonymous volume).
 +
 +</code>
  
 +===== Packaging & Distributing Your Own Docker Containers into Images =====
  
 +Again, check with Nina on how to do this. Clients of Dockerized applications would not normally have to do any of this.
  
 +{{youtube>3c-iBn73dDE?medium&start=6120&end=8844}}
Print/export