Docker---基本操作命令详解

目录

 

Docker基本命令

查看docker的信息

对image的操作

对容器的操作


Docker基本命令

查看docker的信息

查看docker的版本

[root@cloud ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.7            ##此处显示客户端的版本
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        7141c199a2
 Built:             Wed Mar  4 01:24:10 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.7            ##显示服务端的版本
  API version:      1.40 (minimum version 1.12)        ##接口的版本
  Go version:       go1.12.17
  Git commit:       7141c199a2
  Built:            Wed Mar  4 01:22:45 2020    ##创建时间
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
[root@cloud ~]# 

显示docker系统的详细信息

[root@cloud ~]# docker info
Client:
 Debug Mode: false        ##客户端模块没有开启

Server:
 Containers: 0        ##表示没有容器存在
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 1        ##表示存在一个镜像
 Server Version: 19.03.7
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:        ##插件信息
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.21.3.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.701GiB
 Name: cloud
 ID: OJQP:OD7B:TA23:O7ZU:CIYO:CKPO:XN4S:GOQI:ORFF:2JEU:ERED:KAF2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://dnntzrw4.mirror.aliyuncs.com/
 Live Restore Enabled: false

[root@cloud ~]# 

对image的操作

检索image

##name表示镜像名字
##DESCRIPTION 表示该镜像的功能
##STARS表示下载热度
[root@cloud docker]# docker search httpd
NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
httpd                                   The Apache HTTP Server Project                  2903                [OK]                
centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or bui…   30                                      
centos/httpd                                                                            28                                      [OK]
salim1983hoop/httpd24                   Dockerfile running apache config                2                                       [OK]
lead4good/httpd-fpm                     httpd server which connects via fcgi proxy h…   1                                       [OK]
jonathanheilmann/httpd-alpine-rewrite   httpd:alpine with enabled mod_rewrite           1                                       [OK]
clearlinux/httpd                        httpd HyperText Transfer Protocol (HTTP) ser…   1                                       
solsson/httpd-openidc                   mod_auth_openidc on official httpd image, ve…   1                                       [OK]
dariko/httpd-rproxy-ldap                Apache httpd reverse proxy with LDAP authent…   1                                       [OK]
appertly/httpd                          Customized Apache HTTPD that uses a PHP-FPM …   0                                       [OK]
dockerpinata/httpd                                                                      0                                       
interlutions/httpd                      httpd docker image with debian-based config …   0                                       [OK]
itsziget/httpd24                        Extended HTTPD Docker image based on the off…   0                                       [OK]
manasip/httpd                                                                           0                                       
izdock/httpd                            Production ready Apache HTTPD Web Server + m…   0                                       
trollin/httpd                                                                           0                                       
amd64/httpd                             The Apache HTTP Server Project                  0                                       
e2eteam/httpd                                                                           0                                       
manageiq/httpd_configmap_generator      Httpd Configmap Generator                       0                                       [OK]
publici/httpd                           httpd:latest                                    0                                       [OK]
hypoport/httpd-cgi                      httpd-cgi                                       0                                       [OK]
manageiq/httpd                          Container with httpd, built on CentOS for Ma…   0                                       [OK]
alvistack/httpd                         Docker Image Packaging for Apache               0                                       [OK]
buzzardev/httpd                         Based on the official httpd image               0                                       [OK]
ppc64le/httpd                           The Apache HTTP Server Project                  0                                       

##-s + 数字,表示过滤该数字下的镜像
[root@cloud docker]# docker search nginx -s 1000
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                 Official build of Nginx.                        12795               [OK]                
jwilder/nginx-proxy   Automated Nginx reverse proxy for docker con…   1752                                    [OK]
[root@cloud docker]# 

下载image

##一般下载镜像前会先检索一下镜像
[root@cloud ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
68ced04f60ab: Already exists 
f9748e016a5c: Pull complete 
da54b038fed1: Pull complete 
6895ec5eb2c0: Pull complete 
111ba0647b87: Pull complete 
c1dce60f2f1a: Pull complete 
702ec598d0af: Pull complete 
4aba2fcbe869: Pull complete 
b26bbbd533e6: Pull complete 
7bd100a66c55: Pull complete 
74149336419a: Pull complete 
145ea1f01648: Pull complete 
Digest: sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

列出镜像列表

##REPOSITORY:表示镜像的仓库源
##TAG:镜像的标签
##IMAGE ID:镜像ID
##CREATE镜像在共有仓库最新更新时间
##SIZE 镜像大小

[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# 

获取镜像的详细信息(docker inspect + IMAGE ID)

[root@cloud ~]# docker inspect 9b51d9275906
[
    {
        "Id": "sha256:9b51d9275906910446e03bb86e16a0fe0051d6518ba7ae39c8780fc2323fd637",
        "RepoTags": [
            "mysql:latest"
        ],
        "RepoDigests": [
            "mysql@sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c"
        ],
        "Parent": "",
...

添加镜像的标签(相当于生成一个新的镜像)

[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# docker tag mysql:latest mysql:database
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
mysql               latest              9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# 

##命令格式为
docker tag 镜像名:原标签名 镜像名:新标签名

删除镜像(格式:docker rmi 镜像名:标签名 )

[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
mysql               latest              9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# docker rmi mysql:latest
Untagged: mysql:latest
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB

查看镜像的历史信息(格式:docker history 镜像名:标签名)

[root@cloud ~]# docker history httpd:latest
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
c5a012f9cf45        2 weeks ago         /bin/sh -c #(nop)  CMD ["httpd-foreground"]     0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  EXPOSE 80                    0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop) COPY file:c432ff61c4993ecd…   138B                
<missing>           2 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL SIGWINCH          0B                  
<missing>           2 weeks ago         /bin/sh -c set -eux;   savedAptMark="$(apt-m…   60.7MB              
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV HTTPD_PATCHES=           0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV HTTPD_SHA256=133d4829…   0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV HTTPD_VERSION=2.4.41     0B                  
<missing>           2 weeks ago         /bin/sh -c set -eux;  apt-get update;  apt-g…   35.4MB              
<missing>           2 weeks ago         /bin/sh -c #(nop) WORKDIR /usr/local/apache2    0B                  
<missing>           2 weeks ago         /bin/sh -c mkdir -p "$HTTPD_PREFIX"  && chow…   0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV PATH=/usr/local/apach…   0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV HTTPD_PREFIX=/usr/loc…   0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           2 weeks ago         /bin/sh -c #(nop) ADD file:e5a364615e0f69616…   69.2MB              
[root@cloud ~]# 

导出已经下载好的镜像

[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# ls
##save表示保存
##-o表示自定义命名
[root@cloud ~]# docker save -o mysql mysql:database
[root@cloud ~]# ls
mysql
[root@cloud ~]# ll -h
total 527M
-rw------- 1 root root 527M Mar 12 17:54 mysql
[root@cloud ~]# 

载入镜像到docker里面(载入有两种格式,1:docker load < j镜像名;2:docker --input 镜像名)

[root@cloud ~]# ls
mysql
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# docker rmi mysql:database
Untagged: mysql:database
Untagged: mysql@sha256:4a30434ce03d2fa396d0414f075ad9ca9b0b578f14ea5685e24dcbf789450a2c
Deleted: sha256:9b51d9275906910446e03bb86e16a0fe0051d6518ba7ae39c8780fc2323fd637
Deleted: sha256:3b5f20d41feb31513164dab347e9f5bea57dc9c644819aeea2dd5cbb7c7213bf
Deleted: sha256:0c9402cadbef6d34b3c8db27a0d793011c2de41cabc14354734752ec7bd325c1
Deleted: sha256:177c77529402c2687f69bb1cb16c1d6c82351e9f0ab5e7729d48ffab311b85be
Deleted: sha256:67ef0899247f5e0163e7592aeff6a5ecfe644a67e465c207234153ff8ffc5be0
Deleted: sha256:85437a1ff817195eff1881a5b2d12bc0e17fa299cbba52cc6e2bb23f27d160bd
Deleted: sha256:1dc77e60e1b82d40abf76f305b0854f0e3ad0352f7e18372344b955b84dfe9f5
Deleted: sha256:f145e1f715e622fbdb1677a24ca723e52a4bd921ad656faab61f537d3f326c4a
Deleted: sha256:b1dbb44d9f303b7b24defc06cc8b6c58a38a0c3ed7e917adc309d5a75926dace
Deleted: sha256:c92180bc575fea05e5dd83cbad7d2fd1852732f162b00818b101b2baabda04ac
Deleted: sha256:c8420ebfba3078cd14bed76ee7d244b6ce4abad47f4f4843682eea6f03bd575e
Deleted: sha256:bbb9cccab59a16cb6da78f8879e9d07a19e3a8d49010ab9c98a2c348fa116c87
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# docker load < mysql
a9f6b7c7101b: Loading layer [==================================================>]  338.4kB/338.4kB
0c615b40cc37: Loading layer [==================================================>]  9.539MB/9.539MB
ad160f341db9: Loading layer [==================================================>]  4.495MB/4.495MB
1ea6ef84dc3a: Loading layer [==================================================>]  1.536kB/1.536kB
6fce4d95d4af: Loading layer [==================================================>]  53.75MB/53.75MB
6de3946ea013: Loading layer [==================================================>]  6.656kB/6.656kB
d501f79e3989: Loading layer [==================================================>]  3.584kB/3.584kB
1ca405fbe05e: Loading layer [==================================================>]  411.2MB/411.2MB
dbfa2f8c95c3: Loading layer [==================================================>]  5.632kB/5.632kB
f1a617f37b0a: Loading layer [==================================================>]  16.38kB/16.38kB
2ea3f5d1b2f3: Loading layer [==================================================>]  1.536kB/1.536kB
Loaded image: mysql:database
[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB
[root@cloud ~]# 

上传镜像到公有仓库(必须要有docker官方账号,且创建公有仓库)

#登录
docker login
输入账号、密码
#上传
docker push 镜像名;标签名(一般公司使用私有仓库)

对容器的操作

创建容器

[root@cloud ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               database            9b51d9275906        7 days ago          547MB
httpd               latest              c5a012f9cf45        2 weeks ago         165MB

##创建容器前需要保证有该镜像
##-i表示输入,-t表示绑定终端
##/bin/bash表示运行环境
##执行create创建容器之后会生成一个唯一的容器ID
[root@cloud ~]# docker create -it httpd:latest /bin/bash
648b7be24b89616af0c1bd8c1dc061b6612b693430f2e12f193486f9573d20ea

查看容器信息

[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
648b7be24b89        httpd:latest        "/bin/bash"         3 minutes ago       Created                                 pedantic_hamilton
[root@cloud ~]# 

##执行docker ps -a可以查看所有容器的状态,STATUS表示容器的状态
有如下参数 -a:查看正在运行和历史运行的容器;

     -l 显示最近创建的容器;

     -n 显示最近n个创建的容器;

     -q 静默模式,只显示容器编号;

     --no-trunc 不截断输出;

启动容器

##命令格式:docker start + 容器ID
##再次查看容器状态时,显示Up状态,出现PORTS数据

[root@cloud ~]# docker start 648b7be24b89
648b7be24b89
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
648b7be24b89        httpd:latest        "/bin/bash"         17 minutes ago      Up 4 seconds        80/tcp              pedantic_hamilton
[root@cloud ~]# 

run命令

##命令格式:docker run 镜像名 /usr/bin/bash -c ls /
##/usr/bin/bash指定运行环境,-c指定执行命令,/表示在根目录下
(docker run命令会执行从创建容器,开启容器,执行命令,关闭容器等一系列过程)
(如果没有创建容器,没有镜像,就会从下载镜像开始执行,一直到关闭容器)
(执行完成后直接关闭,状态为exited)

进入容器与退出容器

##进入容器,前提是容器在开启状态
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
9074bddd65ba        centos:latest       "/bin/bash"              About a minute ago   Up 2 seconds                            loving_bouman
bf3c9de66574        httpd               "/usr/bin/bash -c ll…"   6 minutes ago        Created             80/tcp              frosty_mendel
[root@localhost ~]# docker exec -it 9074bddd65ba /bin/bash
[root@9074bddd65ba /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
##使用exit命令退出容器
[root@9074bddd65ba /]# exit
exit
[root@localhost ~]# 

关闭容器

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9074bddd65ba        centos:latest       "/bin/bash"         8 minutes ago       Up 6 minutes                            loving_bouman
[root@localhost ~]# docker stop 9074bddd65ba
9074bddd65ba
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
9074bddd65ba        centos:latest       "/bin/bash"         8 minutes ago       Exited (0) 2 seconds ago                       loving_bouman
[root@localhost ~]# 

导出容器(格式为:docker export 容器ID > 定义容器名)

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
9074bddd65ba        centos:latest       "/bin/bash"         9 minutes ago       Exited (0) About a minute ago                       loving_bouman
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
[root@localhost mnt]# docker export 9074bddd65ba > centos
-rw-r--r-- 1 root root 244943360 3月  12 22:08 centos
[root@localhost mnt]# ll -h
总用量 234M
-rw-r--r-- 1 root root 234M 3月  12 22:08 centos
[root@localhost mnt]# 

导入容器

####导入容器只会生成镜像
###命令格式:cat 容器名 | docker import - 镜像:标签

[root@localhost mnt]# ls
centos
[root@localhost mnt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost mnt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE


[root@localhost mnt]# cat centos | docker import - centos:system
sha256:33857c283613993c1683df9c35b9c6d45c913084c69fc4c5fb250cd99aab95d2
[root@localhost mnt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              system              33857c283613        6 seconds ago       237MB
[root@localhost mnt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost mnt]# 

删除容器

##删除容器(必须先删除容器才能删镜像)
docker rm 容器ID
##批量删除容器(不能删除运行的容器)
docker ps -aq | awk '{print "docker rm " $1}' | bash (awk打印)
##删除所有终止的容器
docker rm $(docker ps -a -q)


[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
d7d96791648b        httpd               "/usr/bin/bash -c ll…"   36 minutes ago      Created             80/tcp              romantic_turing
[root@cloud ~]# docker rm d7d96791648b
d7d96791648b
[root@cloud ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@cloud ~]# 
发布了139 篇原创文章 · 获赞 168 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/104822324