docker相关命令


Docker容器命令

docker pull

**获取镜像 (image) **

D:\hexoBlog>docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
a330b6cecb98: Already exists
9c8f656c32b8: Pull complete
88e473c3f553: Pull complete
062463ea5d2f: Pull complete
daf7e3bdf4b6: Pull complete
1839c0b7aac9: Pull complete
cf0a0cfee6d0: Pull complete
1b42041bb11e: Pull complete
10459d86c7e6: Pull complete
b7199599d5f9: Pull complete
1d6f51e17d45: Pull complete
50e0789bacad: Pull complete
Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

docker build

使用 Dockerfile 创建镜像 (image)

```

> ### docker images

**列出本地镜像 (image)**

``` bash
PS C:\Users\wang> docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
nginx                         latest    ad4c705f24d3   4 days ago     133MB
mysql                         latest    0716d6ebcc1a   11 days ago    514MB
docker/getting-started        latest    083d7564d904   3 months ago   28MB
hub.c.163.com/library/nginx   latest    46102226f2fd   4 years ago    109MB

docker cp

用于容器与主机之间的数据拷贝

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。

C:\Users\wang>docker cp /www/runoob 9703d:/www/
CreateFile C:\www: The system cannot find the file specified.

C:\Users\wang>docker cp /www/runoob 9703d:/www/

C:\Users\wang>docker exec -it 9703d /bin/bash
root@9703dcaf7efc:/# cd /
root@9703dcaf7efc:/# ls
bin   dev                         entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc            lib   media  opt  root  sbin  sys  usr  www
root@9703dcaf7efc:/# cd www
root@9703dcaf7efc:/www# ls
1.txt
root@9703dcaf7efc:/www# cat 1.txt
111111111111111
root@9703dcaf7efc:/www#

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中

C:\Users\wang>docker cp  9703d:/www /tmp/

docker commit

从容器创建一个新的镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

  • **-a :**提交的镜像作者;
  • **-c :**使用Dockerfile指令来创建镜像;
  • **-m :**提交时的说明文字;
  • **-p :**在commit时,将容器暂停。
C:\Users\wang>docker commit -a "wangql" -m "wangSQL" 9703d wangSQL
invalid reference format: repository name must be lowercase

C:\Users\wang>docker commit -a "wangql" -m "wangSQL" 9703d wangsql
sha256:9cb7bdcd2ed312f18242775f8f964b7ef860e3fdd1c523842e256e942d9d1be4

C:\Users\wang>docker images wangsql
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
wangsql      latest    9cb7bdcd2ed3   9 seconds ago   514MB

docker rmi

删除本地一个或多个镜像 (image)

C:\Users\wang>docker images
REPOSITORY                    TAG       IMAGE ID       CREATED          SIZE
<none>                        <none>    0990594dba3d   38 minutes ago   514MB
nginx                         latest    ad4c705f24d3   5 days ago       133MB
mysql                         latest    0716d6ebcc1a   12 days ago      514MB
docker/getting-started        latest    083d7564d904   3 months ago     28MB
hub.c.163.com/library/nginx   latest    46102226f2fd   4 years ago      109MB

C:\Users\wang>docker rmi -f mysql nginx
Untagged: mysql:latest
Untagged: mysql@sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
Untagged: nginx:latest
Untagged: nginx@sha256:853b221d3341add7aaadf5f81dd088ea943ab9c918766e295321294b035f3f3e

docker run

创建一个新的容器并运行一个命令 (container)

docker ps

列出正在运行的容器列表

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
da5001f28240   nginx     "/docker-entrypoint.…"   17 seconds ago   Up 16 seconds   80/tcp    distracted_engelbart

显示所有的容器,包括未运行的 docker ps -a

C:\Users\wang>docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS                        PORTS                                   NAMES
da5001f28240   nginx                           "/docker-entrypoint.…"   22 hours ago   Exited (255) 13 minutes ago   80/tcp                                  distracted_engelbart
30402568e75b   nginx                           "/docker-entrypoint.…"   22 hours ago   Exited (0) 22 hours ago
                                     happy_heyrovsky
08d4e5c65b09   docker/getting-started          "/docker-entrypoint.…"   29 hours ago   Exited (0) 29 hours ago
                                     pensive_robinson
1760a9cdaee1   hub.c.163.com/library/nginx     "nginx -g 'daemon of…"   29 hours ago   Exited (255) 29 hours ago     0.0.0.0:8080->80/tcp, :::8080->80/tcp   frosty_hopper
2611bfa8785a   docker/getting-started          "/docker-entrypoint.…"   29 hours ago   Exited (255) 29 hours ago     0.0.0.0:80->80/tcp, :::80->80/tcp       priceless_rosalind
da9c518b220b   hub.c.163.com/library/nginx     "nginx -g 'daemon of…"   30 hours ago   Exited (0) 30 hours ago
                                     heuristic_rubin
790e60c35d23   nginx                           "/docker-entrypoint.…"   3 days ago     Exited (137) 3 days ago
                                     nginx-test
9ce1de13f46a   docker/getting-started:latest   "/docker-entrypoint.…"   3 days ago     Exited (0) 3 days ago
                                     cool_hodgkin
424e2623c296   docker/getting-started          "/docker-entrypoint.…"   3 days ago     Exited (137) 3 days ago
                                     cool_fermat

C:\Users\wang>

docker stop

关闭容器


D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
da5001f28240   nginx     "/docker-entrypoint.…"   17 seconds ago   Up 16 seconds   80/tcp    distracted_engelbart

D:\hexoBlog>docker stop da5001
da5001

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

docker start

启动容器

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
da5001f28240   nginx     "/docker-entrypoint.…"   17 seconds ago   Up 16 seconds   80/tcp    distracted_engelbart

D:\hexoBlog>docker stop da5001
da5001

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

D:\hexoBlog>docker start da5001
da5001

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
da5001f28240   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 5 seconds   80/tcp    distracted_engelbart

docker restart

重启容器

D:\hexoBlog>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
da5001f28240   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 5 seconds   80/tcp    distracted_engelbart

D:\hexoBlog>docker restart da5001
da5001

docker attach | exec

进入容器内部

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

  • **-d :**分离模式: 在后台运行
  • **-i :**即使没有附加也保持STDIN 打开
  • **-t :**分配一个伪终端
C:\Users\wang>docker exec -it 9703d /bin/bash
root@9703dcaf7efc:/# ls
bin   dev                         entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc            lib   media  opt  root  sbin  sys  usr
root@9703dcaf7efc:/# cd /
root@9703dcaf7efc:/# ls
bin   dev                         entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc            lib   media  opt  root  sbin  sys  usr
root@9703dcaf7efc:/#
root@9703dcaf7efc:/#

docker inspect

获取容器/镜像的元数据

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS说明:

  • **-f :**指定返回值的模板文件。
  • **-s :**显示总的文件大小。
  • **–type :**为指定类型返回JSON。
C:\Users\wang>docker inspect mysql
[
    {
        "Id": "e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6",
        "Created": "2021-09-15T15:17:49.314726Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mysqld"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 1,
            "Error": "",
            "StartedAt": "2021-09-15T15:17:50.3746439Z",
            "FinishedAt": "2021-09-15T15:17:50.5453195Z"
        },
        "Image": "sha256:0716d6ebcc1a61c5a296fcb187e71f93531e510d4e4400267e2e502103d0194c",
        "ResolvConfPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/hostname",
        "HostsPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/hosts",
        "LogPath": "/var/lib/docker/containers/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6/e701d96de9775da0bdbe419e368aea0153445fa3d984f0ac99d42cb891260fa6-json.log",
        "Name": "/mysql",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,

获取正在运行的容器mymysql的 IP

C:\Users\wang>docker inspect --format "{{ .NetworkSettings.IPAddress }}" 970
172.17.0.2

C:\Users\wang>
C:\Users\wang>docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mysql-test
172.17.0.2

docker logs

获取容器的日志

D:\hexoBlog>docker logs da5001
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/09/14 17:21:58 [notice] 1#1: using the "epoll" event method
2021/09/14 17:21:58 [notice] 1#1: nginx/1.21.3
2021/09/14 17:21:58 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/09/14 17:21:58 [notice] 1#1: OS: Linux 5.10.16.3-microsoft-standard-WSL2
2021/09/14 17:21:58 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/09/14 17:21:58 [notice] 1#1: start worker processes
2021/09/14 17:21:58 [notice] 1#1: start worker process 32
2021/09/14 17:21:58 [notice] 1#1: start worker process 33
2021/09/14 17:21:58 [notice] 1#1: start worker process 34
2021/09/14 17:21:58 [notice] 1#1: start worker process 35
2021/09/14 17:21:58 [notice] 1#1: start worker process 36

docker top

查看容器中运行的进程信息

D:\hexoBlog>docker top da5001
UID                 PID                 PPID                C                   STIME               TTY
TIME                CMD
root                2073                2053                0                   17:30               ?
00:00:00            nginx: master process nginx -g daemon off;
uuidd               2125                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2126                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2127                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2128                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2129                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2130                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2131                2073                0                   17:30               ?
00:00:00            nginx: worker process
uuidd               2132                2073                0                   17:30               ?
00:00:00            nginx: worker process

docker port

列出指定的容器的端口映射

C:\Users\wang>docker run -itd --name mysql-test -p 3333:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
9703dcaf7efc2614bbec8f89cecab3f3e72285f933154b310bd51e6c7a5127df

C:\Users\wang>docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS
                NAMES
9703dcaf7efc   mysql     "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   33060/tcp, 0.0.0.0:3333->3306/tcp, :::3333->3306/tcp   mysql-test

C:\Users\wang>docker port 9703d
3306/tcp -> 0.0.0.0:3333
3306/tcp -> :::3333

docker wait

阻塞运行直到容器停止,然后打印出它的退出代码

docker wait CONTAINER
C:\Users\wang>docker wait 970
0

C:\Users\wang>

docker rm

删除容器

C:\Users\wang>docker rm zhouzhichao
zhouzhichao

链接:

https://www.cnblogs.com/lgg20/p/13186776.html


文章作者: WangQingLei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WangQingLei !
 上一篇
Linux中&和&&,|和|| Linux中&和&&,|和||
Linux中&和&&,|和||
2022-02-08
下一篇 
postman—使用变量 postman—使用变量
变量允许我们在请求和脚本中存储和重用值。通过将值存储在变量中,我们可以在整个集合、环境和请求中引用它——如果您需要更新该值,您只需在一个地方更改它。使用变量可以提高工作效率,并最大限度地减少出错的可能性。
2021-09-12
  目录