镜像的基本命令
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,然后使用 (dockerimages−aq)使用images名称查询出所有的镜像id,然后使用把参数传入 实现便利删除所有镜像
容器的基本命令
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