English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Basic concepts of Docker
Docker is an open-source application container engine that allows developers to package their applications and dependencies into portable containers and then deploy them on any popular Linux machine.
Docker is an open platform that redefines the process of program development, testing, delivery, and deployment. Docker can be called 'Build once, Run anywhere', which means you can build once and run it anywhere.
Create an image
There are three methods to create an image:
Create based on an existing container
Import based on local template
Based on dockerfile
Create based on an existing container
Mainly use the docker commit command, command format:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:tag]], mainly includes:
-a ,--author="" author information
-m,--message="" commit message
-p,--pause=true pause the container at commit
For example:
# docker run -it centos /bin/bash [root@d7e7ac1cbca2 /]# touch test [root@d7e7ac1cbca2 /]# ls anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys test tmp usr var # docker commit -m "add a file" -a "kafeikele" de6 centos_copy 5d318afa9e6f7fdb755db97e29e3860b752f24b0b50e6bfa0b7e457450802c0e # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos_copy latest 5d318afa9e6f 13 seconds ago 196.7 MB
Import based on local template
It is recommended to use the templates provided by openVZ to create
https://openvz.org/Download/templates/precreated #cat centos-7-x86_64-minimal.tar.gz.crdownload | docker import - centos:latest
Export and import images
# docker images centos 7.1.1503 47a77536ad4c 8 weeks ago 212.1 MB # docker save -o centos_7.1.tar centos:7.1.1503 # docker load --input centos_7.1.tar # docker load < centos_7.1.tar
Based on dockerfile
The following content is detailed introduction
Run the first docker container
# docker run centos echo "hello world" Unable to find image 'centos:latest' locally latest: Pulling from centos 47d44cb6f252: Pull complete 168a69b62202: Pull complete 812e9d9d677f: Pull complete 4234bfdd88f8: Pull complete ce20c473cd8a: Pull complete centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. Digest: sha256:3aaab9f1297db9b013063c781cfe901e2aa6e7e334c1d1f4df12f25ce356f2e5 Status: Downloaded a newer image for centos:latest hello world
Command description:
docker run: Standard container start command
centos: The name of the image, default is latest
echo and the following content: the command executed after the container starts
Start an interactive container
docker run -it centos /bin/bash
*Note:-t indicates that a pseudo terminal or terminal is specified inside the container-i indicates that we can interact with the STDIN inside the container
Start a docker container as a service
If you actually test, you may have found that the first 'hello world' container exited after executing the echo command, and the second interactive container exited as soon as the user exited the current container's bash. This clearly does not meet the requirements of a service running for a long time. That's why docker run provides '-d' parameter can be used to start the container as a daemon process.
docker run -d centos /bin/bash -c "while true; do echo Docker,hello world; sleep 2; <br>179fc7f17c358834364d23112aa26d6a9e1875b2281563720425f62a8f1b5c33
This long string is called the container ID. It is the unique identifier of the container, so we can use it to operate the container, such as view logs, stop, or delete the container, etc.
dock logs 179fc7f17c358834364d
And why use a deadlock to output?
Because if it is not a deadlock, the process in the container will end after one output. When all the unique processes in the container end, the container stops. Therefore, if you want to run a specific service in the container, this service itself must also be run in the container as a daemon process.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Main options:
-d : Run the container in the background
-t : Provide a pseudo terminal
--t-If the 'i' option is used, the container cannot be exited after it starts
-v : Map a volume to the container, such as: -p /data/www:/var/www/html
-p : Map the container's port to the host machine, such as: -p 8080:80
More command operations
# docker images List all local images # docker search centos Search for images from the default image repository NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 2767 [OK] ansible/centos7-ansible Ansible on Centos7 90 [OK] jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.2.1511 x8... 42 [OK] jdeathe/centos-ssh-apache-php CentOS-6 6.8 x86_64 - Apache / PHP / PHP M... 21 [OK] nimmis/java-centos These are the docker images of CentOS 7 with dif... 17 [OK] consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 14 [OK] #docker pull centos Download the image to the local #docker create -it ubuntu:latest Create a container Unable to find the image 'ubuntu:latest' locally latest: Pulling from ubuntu 58488e45273c: Pull complete 25810b66099e: Pull complete 6571ba684f54: Pull complete 6ed49a73d8f0: Pull complete c53777cbfc31: Pull complete 56465e1e45d2: Pull complete Digest: sha256:312986132029d622ae65423ca25d3a3cf4510de25c47b05b6819d61e2e2b5420 Status: Downloaded a newer image for ubuntu:latest 1330233e50aba7fca99e5914bd28dd89321bc86ec35fb36b4775d3424337c190 The container created by the docker create command is in a stopped state and needs to be started with docker start # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1330233e50ab ubuntu:latest "/bin/bash" About a minute ago happy_engelbart The docker run command is equivalent to first executing the docker create command, and then executing the docker start command # docker run ubuntu /bin/echo "hello world" hello world
Enter the container
Method One:
# docker attach a54615a88787 Followed by the container name or ID, the docker container will also exit after exiting, not commonly used
Method Two:
# docker exec -it a54615a88787 /bin/bash Followed by the container name or ID
Method Three:
yum -y install util-linux # docker inspect --format "{{.State.Pid}}" stupefied_cray The last part is the container name 4899 # nsenter --target 4899 --mount --uts --ipc --net --pid
Script
#!/bin/bash CNAME=$1 CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME) nsenter --target $CPID --mount --uts --ipc --net –pid
The above is the detailed explanation of the basic Docker commands introduced by the editor for everyone. I hope it will be helpful to everyone. If you have any questions, please leave a message, and the editor will reply to everyone in time. I am also very grateful for everyone's support of the Yelling Tutorial website!
Statement: The content of this article is from the Internet, and the copyright belongs to the original author. The content is contributed and uploaded by Internet users spontaneously. This website does not own the copyright, has not been manually edited, and does not assume any relevant legal liability. If you find any content suspected of copyright infringement, please send an email to: notice#oldtoolbag.com (Please replace # with @ when sending an email to report violations, and provide relevant evidence. Once verified, this site will immediately delete the infringing content.)