Docker Client Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(30 intermediate revisions by the same user not shown)
Line 13: Line 13:
| [[docker build|build]] || [[docker create|create]] || [[docker cp|cp]] || [[docker rm|rm]]
| [[docker build|build]] || [[docker create|create]] || [[docker cp|cp]] || [[docker rm|rm]]
|-
|-
| [[docker ps|ps]] || [[docker run|run]] || [[docker stop|stop]]  || [[docker rm|rm]]
|-
| [[docker pull|pull]] || [[docker push|push]] || [[docker rmi|rmi]]
|-
| [[docker tag|tag]] || [[docker stack|stack]]
|}
|}


Line 42: Line 47:
* <span id='version'></span>Server and client version [[docker version|docker version]]
* <span id='version'></span>Server and client version [[docker version|docker version]]
* System-wide info [[docker info]]
* System-wide info [[docker info]]
* Low level metadata about an image or container [[docker inspect]]
* Resource statistics for running containers [[docker stats]].


=<span id='Image_Management'></span><span id='images'></span>Image Operations=
=<span id='Image_Management'></span><span id='images'></span>Image Operations=
Line 53: Line 60:
* <span id='Push'></span>Push an image or a repository to a registry: [[docker push#Overview|docker push]]
* <span id='Push'></span>Push an image or a repository to a registry: [[docker push#Overview|docker push]]
* <font color=red>'''TODO''': how is a docker instance configured with specific [[Docker Concepts#Image_Registry_Operations|registries]]?</font>
* <font color=red>'''TODO''': how is a docker instance configured with specific [[Docker Concepts#Image_Registry_Operations|registries]]?</font>
* [[docker tag]]


==Image Manipulation==
==<span id='Image_Manipulation'></span>Image Introspection and Manipulation==


* <span id='Build'></span><span id='Build_an_Image'></span>Build an image: [[docker build]]
* <span id='Build'></span><span id='Build_an_Image'></span>Build an image: [[docker build]]
** [[Building a Container that Loops]]
* <span id='Image_Inspect'></span>Obtain low-level metadata about an image: [[docker inspect]]
* <span id='Image_Inspect'></span>Obtain low-level metadata about an image: [[docker inspect]]
* <span id='Image_History'></span>Obtain image history: [[docker history]]
* <span id='Image_History'></span>Obtain image history: [[docker history]]
Line 63: Line 72:
* <span id='Export_the_Filesystem'></span>Export a container's filesystem into a TAR file: [[docker export]]
* <span id='Export_the_Filesystem'></span>Export a container's filesystem into a TAR file: [[docker export]]
* <span id='import'></span>Create a new image from a TAR archive: [[docker import|docker import]]
* <span id='import'></span>Create a new image from a TAR archive: [[docker import|docker import]]
* [[Docker Image Operations - Modifying an Existing Image|Modifying an existing Image]]
* [[Docker Image Operations - Create a New Image by Writing Over an Existing Image|Create a new image by writing over an existing image]]
* [[Docker Image Operations - Copy Files In and Out of a Container|Copy Files In and Out of a Container]]


==Explore an Image==
 
===Explore an Image===


If the image has a shell, it can be run in interactive mode and explored:  
If the image has a shell, it can be run in interactive mode and explored:  


   [[docker run]] -it <''image-id''|''name''> sh
   [[docker run]] --rm -it <''image-id''|''name''> bash|sh


While the container is running, the image can be exported into a TAR file system with [[docker export]] and explored off-line.
While the container is running, the image can be exported into a TAR file system with [[docker export]] and explored off-line.
===Determine the Command that Launches the Process to Be Executed in the Container===
docker inspect --format '&#123;{.Config.Cmd}}' <''image-id''>


=<span id='Lifecycle'></span><span id='Recipes'></span>Container Lifecycle Operations=
=<span id='Lifecycle'></span><span id='Recipes'></span>Container Lifecycle Operations=
Line 80: Line 93:
* <span id='stop'></span><span id='Stop_a_Container'></span>Stop a running container: [[docker stop#Overview|docker stop]]
* <span id='stop'></span><span id='Stop_a_Container'></span>Stop a running container: [[docker stop#Overview|docker stop]]
* <span id='start'></span><span id='Start_a_Previously_Stopped_Container'></span>Start a previously stopped container: [[docker start#Overview|docker start]]
* <span id='start'></span><span id='Start_a_Previously_Stopped_Container'></span>Start a previously stopped container: [[docker start#Overview|docker start]]
* <span id='start'></span><span id='Restart_a_Container'></span>Restart a container: [[docker restart#Overview|docker restart]]
* <span id='Remove_a_Container></span>Remove a container:  [[docker rm#Overview|docker rm]]
* <span id='Remove_a_Container></span>Remove a container:  [[docker rm#Overview|docker rm]]
* [[docker - Start a Container Automatically|Start a Container Automatically]]
* [[docker - Start a Container Automatically|Start a Container Automatically]]
=Interaction with a Running Container=
* [[Docker_exec#Attach_to_a_Running_Container|Attach to a Running Container]]:  <span id='exec'></span>[[docker exec|docker exec]]
* <span id='update'></span>[[docker update|docker update]]
* Attach the local standard input, output, and error streams to a running container: <span id='attach'></span>[[docker attach|docker attach]]
* [[Docker Image Operations - Copy Files In and Out of a Container|Copy files in and out of a container]]


=Container Introspection=
=Container Introspection=
Line 88: Line 109:
* <span id='logs'></span>Look at container's logs [[docker logs|docker logs]]
* <span id='logs'></span>Look at container's logs [[docker logs|docker logs]]
* Explore changes introduced in the container's file system [[docker diff|docker diff]]
* Explore changes introduced in the container's file system [[docker diff|docker diff]]
* Resource statistics for running containers [[docker stats]].


=Interaction with a Running Container=
=Network=
 
{{Internal|Docker Network Operations|Network Operations}}
 
=Storage=


* [[Docker_exec#Attach_to_a_Running_Container|Attach to a Running Container]]
{{Internal|Docker Storage Operations|Storage Operations}}
* <span id='exec'></span>[[docker exec|docker exec]]
* <span id='update'></span>[[docker update|docker update]]


=Security=
=Security=
Line 102: Line 126:


{{Internal|Docker Client Scenarios|Docker Client Scenarios}}
{{Internal|Docker Client Scenarios|Docker Client Scenarios}}
=Troubleshooting=
* [[Docker_inspect#Get_the_Reasons_a_Container_Was_Killed_For|Get the Reasons a Container Was Killed For]]

Latest revision as of 21:10, 16 August 2019

External

Internal

Commands

build create cp rm
ps run stop rm
pull push rmi
tag stack

Installation Verification

Docker Installation Verification

Running the Client

On the Same Host as the Server

In order to connect to the docker server over the Unix socket, the user running the client must have permissions to do so:

[testuser@docker-server ~]$ ls -al /var/run/docker.sock
srw-rw----. 1 root docker 0 Apr 25 16:00 /var/run/docker.sock

One way to do that is to make the user a member of "docker" group:

usermod -G docker testuser

From a Remote Host

Info

Image Operations

Registry Operations

Image Introspection and Manipulation


Explore an Image

If the image has a shell, it can be run in interactive mode and explored:

 docker run --rm -it <image-id|name> bash|sh

While the container is running, the image can be exported into a TAR file system with docker export and explored off-line.

Determine the Command that Launches the Process to Be Executed in the Container

docker inspect --format '{{.Config.Cmd}}' <image-id>

Container Lifecycle Operations

Interaction with a Running Container

Container Introspection

Network

Network Operations

Storage

Storage Operations

Security

Scenarios

Docker Client Scenarios

Troubleshooting