docker-1 常用命令

镜像的基本命令

1,查看本地镜像

docker images

liujian@liujiandeMacBook-Pro ~ % docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7.30              b84d68d0a7db        6 weeks ago         448MB
mysql               latest              94dff5fab37f        6 weeks ago         541MB
liujian@liujiandeMacBook-Pro ~ % 

可选参数:
docker images [-a] 列出所有镜像
docker images [-q] 只显示镜像id
docker images [-aq] 列出所有镜像id

2,镜像搜索

docker search 镜像名称

liujian@liujiandeMacBook-Pro ~ % docker search redis
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis                            Redis is an open source key-value store that…   8344                [OK]                
bitnami/redis                    Bitnami Redis Docker Image                      151                                     [OK]
sameersbn/redis                                                                  80                                      [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0           68                                      
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   43   

3,下载镜像

docker pull 镜像名称:版本号

liujian@liujiandeMacBook-Pro ~ % docker pull redis:6.0.5
6.0.5: Pulling from library/redis
8559a31e96f4: Pull complete 
85a6a5c53ff0: Pull complete 
b69876b7abed: Pull complete 
a72d84b9df6a: Pull complete 
5ce7b314b19c: Pull complete 
04c4bfb0b023: Pull complete 
Digest: sha256:800f2587bf3376cb01e6307afe599ddce9439deafbd4fb8562829da96085c9c5
Status: Downloaded newer image for redis:6.0.5
docker.io/library/redis:6.0.5
liujian@liujiandeMacBook-Pro ~ %

在下载的时候可以指定版本号,这里指定下载的是redis的6.0.5版本,可以到docker官网查看支持的版本:https://hub.docker.com/_/redis
如果不指定版本号,则默认下载当前最新版。

4,删除镜像

docker rmi -f 镜像id

liujian@liujiandeMacBook-Pro ~ % docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               6.0.5               235592615444        3 weeks ago         104MB
mysql               5.7.30              b84d68d0a7db        6 weeks ago         448MB
mysql               latest              94dff5fab37f        6 weeks ago         541MB
liujian@liujiandeMacBook-Pro ~ % docker rmi -f 94dff5fab37f                  
Untagged: mysql:latest
Untagged: mysql@sha256:beba993cc5720da07129078d13441745c02560a2a0181071143e599ad9c497fa
Deleted: sha256:94dff5fab37f18946165632a45d8ff738ee97dc7a9dfde945b0862d52ecc5b08
Deleted: sha256:dc323e8164e71563f2a380b4767d5b47fc380d64a33241e98e4b225285ebac4a
Deleted: sha256:0804fa49ae95ec657e06ebe69d016d82e67f413b2db5d480adf5d8d1b28d84d5
Deleted: sha256:430365c8e22a9207dca4638c523dc82163bca3ab8a335a71147af41d1551561f
Deleted: sha256:1ede41b1dbec1a5e4385200b62283ffb25c425275530ea9e9cc36b921186cd08
Deleted: sha256:2f6badb9fd9965261d3463591f8af4afddf5f141456de83dc994690ae64b34eb
liujian@liujiandeMacBook-Pro ~ % 

删除所有镜像:docker rmi -f ( d o c k e r i m a g e s − a q ) 使 用 i m a g e s 名 称 查 询 出 所 有 的 镜 像 i d , 然 后 使 用 (docker images -aq) 使用images名称查询出所有的镜像id,然后使用 (dockerimagesaq)使imagesid使把参数传入 实现便利删除所有镜像

容器的基本命令

1,新建容器并启动

新建一个容器并启动命令:docker run [option] redis[:tag]
示例:使用容器启动一个redis镜像

liujian@liujiandeMacBook-Pro ~ % docker images    
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               6.0.5               235592615444        3 weeks ago         104MB
mysql               5.7.30              b84d68d0a7db        6 weeks ago         448MB
liujian@liujiandeMacBook-Pro ~ % docker run -it redis /bin/bash 
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
Digest: sha256:800f2587bf3376cb01e6307afe599ddce9439deafbd4fb8562829da96085c9c5
Status: Downloaded newer image for redis:latest
root@90bc2815aa35:/data# 

参数说明:
-d:后台方式运行(docker run -d redis)
-it:交互方式运行(容器启动后进去容器)
-p:设置端口映射:宿主机端口:容器端口
-P:随机指定端口
其他更多参数可docker run --help获取查看

2,查看容器列表

docker ps

liujian@liujiandeMacBook-Pro ~ % docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
liujian@liujiandeMacBook-Pro ~ % docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                                              NAMES
e49741968f3f        nginx:1.19          "/docker-entrypoint.…"   3 months ago        Exited (255) 3 months ago   0.0.0.0:8888->80/tcp                               nginx-test
31271d6e771a        kafka_centos:7.0    "/bin/bash"              4 months ago        Exited (137) 4 months ago                                                      kafka03
37a84cdec4d3        kafka_centos:7.0    "/bin/bash"              4 months ago        Exited (137) 4 months ago                                                      kafka02
6029b019bb22        kafka_centos:7.0    "/bin/bash"              4 months ago        Exited (255) 3 months ago   0.0.0.0:32769->2181/tcp, 0.0.0.0:32768->9092/tcp   kafka01
1bf2f7b2e160        mysql:5.7.30        "docker-entrypoint.s…"   6 months ago        Exited (255) 4 days ago     0.0.0.0:3306->3306/tcp, 33060/tcp                  mysql5.7.30
liujian@liujiandeMacBook-Pro ~ % 

常用可选参数:
-a:显示所有容器(运行中的+已停止的都会显示)
-q:只显示容器的id

3,启动一个已经停止了的容器

docker start 容器id

4,重启容器

docker restart 容器id

5,停止运行中的容器

docker stop 容器id

6,强制停止运行中的容器

docker kill 容器id

7,退出容器

在容器中使用exit即可退出容器,但是此方式退出容器也会停止运行并退出
想要退出后容器继续运行,可以使用Ctrl+P+Q,mac使用control+P+Q退出容器,容器还会在后台继续运行

8,删除容器

docker rm 容器id

liujian@liujiandeMacBook-Pro ~ % docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                               NAMES
e3a334ed099b        redis               "docker-entrypoint.s…"   16 minutes ago      Up 16 minutes              6379/tcp                            brave_lamport
90bc2815aa35        redis               "docker-entrypoint.s…"   23 minutes ago      Exited (0) 5 minutes ago   6379/tcp                            eager_kowalevski
1bf2f7b2e160        mysql:5.7.30        "docker-entrypoint.s…"   6 weeks ago         Exited (255) 3 weeks ago   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql5.7.30
liujian@liujiandeMacBook-Pro ~ % docker rm 90bc2815aa35
90bc2815aa35
liujian@liujiandeMacBook-Pro ~ % 

如果需要删除所有容器:docker rm -f $(docker ps -aq)
-f:这个参数会强制删除运行中的容器,不建议使用

与容器交互

1,进入正在运行中的容器

方式一:docker exec -it 容器id /bin/bash
方式二:docker attach 容器id
区别:
exec:进入容器后开启一个新的终端
attach:进入容器正在执行的终端

2,从容器中复制文件到宿主机上

docker cp 容器id:容器内路径 宿主机路径
复制文件夹也是一样的操作

docker cp e3a334ed099b:/text.log ./Desktop
docker cp 1bf2f7b2e160:/bin ./Desktop

3,查看docker容器的日志

命令:docker logs 容器id

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如30m(即30分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如30m(即30分钟)
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since="2020-12-01" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
$ docker logs -t --since="2020-12-01T12:00:00" CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since="2020-12-01T12:00:00" --until "2020-12-01T18:00:00" CONTAINER_ID

查看容器的一些信息

1,查看容器信息

命令:docker inspect 容器id
可以列出容器的各种信息:完整id,运行状态,镜像信息,网络配置,数据卷挂载信息,硬件资源信息等等。

2,查看数据卷挂载信息

列出所有挂载卷:docker volume ls
查看指定的挂载卷:docker volume inspect 挂载卷id或者名称
例如:

liujian@liujiandeMacBook-Pro ~ % docker volume inspect qigemingzi
[
    {
        "CreatedAt": "2020-07-14T14:02:39Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/qigemingzi/_data",
        "Name": "qigemingzi",
        "Options": null,
        "Scope": "local"
    }
]
liujian@liujiandeMacBook-Pro ~ %

3,查看网络信息

查看网络列表:docker network ls

liujian@liujiandeMacBook-Pro ~ % docker network ls                  
NETWORK ID          NAME                DRIVER              SCOPE
20877dd5f500        bridge              bridge              local
9642d7335dca        host                host                local
867d0de65d80        none                null                local
6ee654435d22        salulu_network      bridge              local
liujian@liujiandeMacBook-Pro ~ %

看到指定网络:docker network inspect 网络id

liujian@liujiandeMacBook-Pro ~ % docker network inspect 6ee654435d22
[
    {
        "Name": "salulu_network",
        "Id": "6ee654435d22df9ca889633078b58e45a828f5dcc8447258d5f56bab22d0eeee",
        "Created": "2020-07-18T03:52:59.8703712Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
liujian@liujiandeMacBook-Pro ~ %

4,查看占用的资源情况

命令:docker stats

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
1bf2f7b2e160        mysql5.7.30         0.05%               182.7MiB / 1.944GiB   9.18%               1.45kB / 0B         0B / 0B             27
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值