镜像命令
docker images [options]
查看本地主机的所有镜像
kpsmile@kpsmile-PC:~/Desktop$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest feb5d9fea6a5 10 months ago 13.3kB
参数描述:
# 解释:1.REPOSITORY 镜像的仓库源2.TAG 镜像的标签3.IMAGE ID 镜像的id4.CREATED 镜像的创建时间5.SIZE 镜像的大小# OPTIONS可选参数-a/--all 列出所有镜像-q/--quiet 只显示镜像的id
docker search [options] 镜像名
搜索镜像
参数描述:
#可选参数Search the Docker Hub for imagesOptions:-f, --filter filter Filter output based on conditions provided--format string Pretty-print search using a Go template--limit int Max number of search results (default 25)--no-trunc Don\'t truncate output#搜索收藏数大于3000的镜像$ docker search mysql --filter=STARS=3000#搜索前5个镜像$ docker search mysql --limit 5 redis
docker pull 镜像名[:tag]
下载镜像

参数描述
#没有tag就是获取最新版本$ docker pull redis#等价于$ docker pull redis:latest
docker rmi [options]
删除镜像




参数描述
#1.删除指定的镜像id$ docker rmi -f 镜像id#2.删除多个镜像id$ docker rmi -f 镜像id 镜像id 镜像id#3.删除全部的镜像id$ docker rmi -f $(docker images -aq)#4.删除指定的镜像名$ docker rmi -f 镜像名#5.删除指定版本号的镜像名$ docker rmi -f 镜像名:tag
docker system df
查看镜像/容器/数据卷所占的空间

容器命令
运行容器 docker run
docker run [options] image [command] [args]
options参数
- —name=”continerName” 指定容器名字
- -d 后台运行容器,并返回容器id
- -i 以交互模式运行容器,通常与 -t 同时使用
- -t 为容器重新分配一个伪终端,通常与 -i 同时使用
- -p 指定容器的端口
- -p ip:主机端口:容器端口 配置主机端口映射到容器端口
- -p 主机端口:容器端口
- -p 容器端口
- -P 随机指定端口(大写的P)
docker run —name=”redis02” -p 6381:6379 -d 7614ae9453d1

docker run -it —name=”ubuntu01” ba6acccedd29 /bin/bash

退出容器 Ctrl+P+Q
#exit 停止并退出容器(后台方式运行则仅退出)#Ctrl+P+Q 不停止容器退出
列出容器 docker ps
#docker ps# 列出当前正在运行的容器-a # 列出所有容器的运行记录-n=? # 显示最近创建的n个容器 (default -1)-q # 只显示容器的编号-s # 显示总文件大小
删除容器 docker rm
# 选项:-f # 移除正在运行的容器(使用SIGKILL)-l # 移除容器间的网络连接,而非容器本身-v # 删除与容器关联的卷docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -fdocker rm -f $(docker ps -aq) # 删除所有的容器docker ps -a -q | xargs docker rm # 删除所有的容器
启动和重启容器命令
docker start 容器id #启动容器docker restart 容器id #重启容器docker stop 容器id #停止当前运行的容器docker kill 容器id #强制停止当前容器
查看容器日志
$ docker logs --helpUsage: docker logs [OPTIONS] CONTAINERFetch the logs of a containerOptions:-f # 跟踪日志输出 (相当于 tail -f XXXX)--since # 显示某个开始时间的所有日志-t # 显示时间戳-n # 仅列出最新N条容器日志(默认为“全部”)常用:docker logs -tf 容器iddocker logs --tail number 容器id #num为要显示的日志条数docker logs -n number 容器id #num为要显示的日志条数#docker容器后台运行,必须要有一个前台的进程,否则会自动停止#编写shell脚本循环执行,使得centos容器保持运行状态$ docker run -d ubuntu /bin/sh -c "while true;do echo hi;sleep 5;done"f51f3cbb27511b49d85c98fa62691a1a19397d4a272a8cc7d4769d3d6ec41f2a$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd57e2b89c979 ubuntu "/bin/sh -c 'while t…" 10 seconds ago Up 9 seconds busy_ridekpsmile@kpsmile-PC:~/Desktop$ docker logs -tf --tail 10 d57e2b89c9792022-08-07T15:43:57.343609834Z hi2022-08-07T15:44:02.345601162Z hi2022-08-07T15:44:07.349546909Z hi2022-08-07T15:44:12.352118827Z hi2022-08-07T15:44:17.354935652Z hi2022-08-07T15:44:22.357180030Z hi2022-08-07T15:44:27.362205405Z hi2022-08-07T15:44:32.367300518Z hi2022-08-07T15:44:37.369158150Z hi2022-08-07T15:44:42.373163230Z hi2022-08-07T15:44:47.377194459Z hi2022-08-07T15:44:52.379655128Z hi
查看容器中进程信息
# 命令 docker top 容器idkpsmile@kpsmile-PC:~/Desktop$ docker top d57e2b89c979UID PID PPID C STIME TTY TIME CMDroot 3987 3968 0 23:42 ? 00:00:00 /bin/sh -c while true;do echo hi;sleep 5;doneroot 4350 3987 0 23:46 ? 00:00:00 sleep 5
查看镜像的元数据
$ docker inspect 容器id#docker inspect : 获取容器/镜像的元数据。#语法docker inspect [OPTIONS] NAME|ID [NAME|ID...]#OPTIONS说明:-f :指定返回值的模板文件。-s :显示总的文件大小。--type :为指定类型返回JSON。
进入当前正在运行的容器
# 方式一# 语法docker exec [OPTIONS] CONTAINER COMMAND [ARG...]#OPTIONS说明:-d :分离模式: 在后台运行-i :即使没有附加也保持STDIN 打开-t :分配一个伪终端# 我们通常容器使用后台方式运行的, 需要进入容器,修改一些配置# 命令docker exec -it 容器id /bin/bash# 测试$ docker exec -it df358bc06b17 /bin/bash[root@df358bc06b17 /]# lsbin etc lib lost+found mnt proc run srv tmp vardev home lib64 media opt root sbin sys usr[root@df358bc06b17 /]# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Aug11 pts/0 00:00:00 /bin/bashroot 29 0 0 01:06 pts/1 00:00:00 /bin/bashroot 43 29 0 01:06 pts/1 00:00:00 ps -ef# 方式二docker attach 容器id# docker exec # 进入容器后开启一个新的终端,可以在里面操作# docker attach # 进入容器正在执行的终端,不会启动新的进程
拷贝容器文件到主机
docker cp 容器id:容器内路径 目的主机路径#进入容器中$ docker cp 8b84603c410a:/home/test.java /home$ lsalex arod hello.java neos test.java#拷贝只是一个手动功能,未来我们使用 -v 卷的技术,可以实现自动同步
提交容器为镜像
docker commit -a=”作者” -m=“提交的描述信息” 容器id 要创作的目标镜像名:[标签名]
kpsmile@kpsmile-PC:~$ docker commit -a="wm" -m="Ubuntu with net-tools" 2dc0cfc8ac74 wm/ubuntu:1.0sha256:40e576052d3f930498b858ba55c76a0386e29932fa306ffef81413005ac65b7ckpsmile@kpsmile-PC:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEwm/ubuntu 1.0 40e576052d3f 4 seconds ago 111MBredis latest 7614ae9453d1 7 months ago 113MBregistry latest b8604a3fe854 8 months ago 26.2MBubuntu latest ba6acccedd29 9 months ago 72.8MB
导出容器 docker export
export 导出容器的内容留作为一个tar归档文件[对应import命令]
docker export 容器ID > 文件名.tar
kpsmile@kpsmile-machine:~$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES96a2f98fd3d4 ubuntu "bash" About a minute ago Up About a minute ubuntu03b9e620363c0c redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6382->6379/tcp, :::6382->6379/tcp redis02kpsmile@kpsmile-machine:~$ docker export 96a2f98fd3d4 > ubuntu03.tar.gzkpsmile@kpsmile-machine:~$ lsDesktop Documents Downloads Music myregistry Pictures Public snap Templates ubuntu03.tar.gz Videos
导入容器 docker import
import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
kpsmile@kpsmile-machine:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.1.29:5000/wm/ubuntu 1.1 c0cad9d8bfb3 22 hours ago 111MBredis latest 7614ae9453d1 7 months ago 113MBmysql latest 3218b38490ce 7 months ago 516MBregistry latest b8604a3fe854 8 months ago 26.2MBubuntu latest ba6acccedd29 9 months ago 72.8MBhello-world latest feb5d9fea6a5 10 months ago 13.3kBcentos latest 5d0da3dc9764 10 months ago 231MBkpsmile@kpsmile-machine:~$ cat ubuntu03.tar.gz | docker import - wm/ubuntu-ifconfig:1.0sha256:9e8154d445c37eb546037c8094ec8723e9d1c6fb5353b96e57aa88a9401ef64dkpsmile@kpsmile-machine:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEwm/ubuntu-ifconfig 1.0 9e8154d445c3 6 seconds ago 111MB192.168.1.29:5000/wm/ubuntu 1.1 c0cad9d8bfb3 22 hours ago 111MBredis latest 7614ae9453d1 7 months ago 113MBmysql latest 3218b38490ce 7 months ago 516MBregistry latest b8604a3fe854 8 months ago 26.2MBubuntu latest ba6acccedd29 9 months ago 72.8MBhello-world latest feb5d9fea6a5 10 months ago 13.3kBcentos latest 5d0da3dc9764 10 months ago 231MB
