docker笔记-简单命令小记
本文仅做简单记录,docker命令详细请参考官方文档:https://docs.docker.com/reference/;
命令列表
命令 | 必要参数 | 常用可选参数 | 命令说明 |
---|---|---|---|
exit | 从容器中退出 | ||
docker attach | [容器id] | 进入容器中现有的终端,不会开启新的终端 | |
docker commit | [容器id] 镜像名称:标签 | -a -m | # 作者 # 镜像说明 |
docker cp | [容器id]:文件路径 主机路径 | 容器中的文件拷贝 | |
docker exec | -it [容器id] | 以新的终端进入docker | |
docker info | 查询docker系统信息,包括镜像和容器数量 | ||
docker images | -a -q | 显示所有镜像(和不带时一样) 仅显示镜像ID | |
docker inspect | [容器id] | #容器信息查看 | |
docker kill | [容器id] | 强制停止容器 | |
docker logs | [容器id] | -f -n, --tail -t | # 跟踪输出日志 # 输出日志行数 # 日志输出包括时间 |
docker pull | image | 下载镜像 | |
docker ps | -a -n=? -l -q -s | # 查询所有容器,包括历史运行过的 # 列举最近创建的n个容器 # 列举最近创建的容器 # 只列举容器的标签 # 展示容器大小 | |
docker rmi | 镜像id | -f | 强制删除镜像 |
docker rm | [容器id] | -f | 强制删除容器 |
docker run | image | –name=“Name” -d -it -p -P | #指定容器名称 未指定容器名称时默认是镜像 #指定容器后台运行 #指定交互方式运行,并进入容器查看内容 #指定容器端口 -p 8080:8080 主机端口:容器端口 #随机指定端口 |
docker restart | [容器id] | 重启容器 | |
docker start | [容器id] | 启动容器 | |
docker stats | 查看docker容器运行资源消耗情况 | ||
docker stop | [容器id] | 停止容器 | |
docker search | image | -f | 镜像搜索命令 |
docker top | 容器id | 查看容器中进程 | |
docker -v | docker version | 查询docker版本信息 |
版本信息以及帮助命令
docker -v #查询docker版本信息
docker version #查询docker版本信息
docker info #查询docker系统信息,包括镜像和容器数量
docker 命令 --help #命令帮助
镜像命令
docker images 查询docker中的镜像
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 10 months ago 13.3kB
# 命令操作参数项:
--all , -a # 显示所有镜像(和不带时一样)
--quiet,-q # 仅显示镜像ID
docker search 镜像搜索命令
# 命令操作参数项:
--filter , -f Filter output based on conditions provided
# 查询结果中stars在4000以上的结果
[root@localhost /]# docker search mysql -f stars=4000
[root@localhost /]# docker search mysql --filter=STARS=4000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 12923 [OK]
mariadb MariaDB Server is a high performing open sou… 4954 [OK]
docker pull下载命令
docker pull mysql # 默认拉取最新的镜像
docker pull mysql:5.7 # 结合:tag标签拉取相应版本的镜像
# 拉取日志介绍
[root@localhost /]# docker pull mysql
Using default tag: latest # 拉取的版本
latest: Pulling from library/mysql
72a69066d2fe: Pull complete # 分层下载文件
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
docker 异常退出后重启
systemctl start docker.service
或者
sudo service docker restart
#重启network服务
systemctl restart network && systemctl restart docker
docker rmi 删除镜像
docker rmi -f 镜像id # 删除某个镜像
docker rmi -f 镜像id 镜像id 镜像id # 删除多个镜像
docker rmi -f $(docker images -aq) # 删除所有镜像
容器命令
容器创建需要有相应的容器,通过docker pull
操作拉取相应的镜像。
docker run 运行镜像
docker run [可选参数] image
# 常用参数说明:
--name="Name" #指定容器名称 未指定容器名称时默认是镜像
-d #指定容器后台运行
-it #指定交互方式运行,并进入容器查看内容
-p #指定容器端口 -p 8080:8080 主机端口:容器端口
-p 主机端口:容器端口 #*常用*
-p 容器端口
容器端口
-P #随机指定端口
# 示例:
# /bin/bash it运行方式指定的交互控制器
[root@localhost ~]# docker run -it centos /bin/bash
[root@6ad9dee16632 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@6ad9dee16632 /]# exit # 退出容器
exit
注意:-d 后台启动容器时,需要注意,docker启动容易如果没有前台程序运行,则会认为不需要提供服务,docker容器将会被关闭
# 后台启动容器 /bin/bash 类似提供前台运行的服务 -c 后面是脚本
docker run -d centos /bin/bash -c "while true; do echo docker run test ; sleep 1 ; done"
1e274e49713ead723824722b8539a3639432fc119e1a03021fe70a39f015b4d3
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE
1e274e49713e centos
docker ps 容器列举
docker ps [参数] # 没有参数时只列举正在运行的容器
# 常用参数说明:
-a # 查询所有容器,包括历史运行过的
-n=? # 列举最近创建的n个容器
-l # 列举最近创建的容器
-q # 只列举容器的标签
-s # 展示容器大小
exit 退出容器
#----------it 交互模式下--------------
exit # 退出并停止容器
Ctrl+P+Q # 快捷键退出不停止容器
#---------- -d后台模式容器-------------
exit # 退出不会停止容器
docker rm删除容器
docker rm [容器id] # 不能删除正在运行的容器
docker rm -f [容器id] # 强制删除
docker 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日志查看
# 参数说明
-f # 跟踪输出日志
-n, --tail string # 输出日志行数
-t, --timestamps # 日志输出包括时间
# 示例
[root@localhost /]# docker logs -f -n=3 1e274e49713e
docker run test
docker run test
docker run test
^C
[root@localhost /]# docker logs -f -t -n=3 1e274e49713e
2022-07-28T07:59:11.652065801Z docker run test
2022-07-28T07:59:12.656388498Z docker run test
2022-07-28T07:59:13.660228343Z docker run test
exec/attach进入当前容器
# 方法一:docker exec以新的终端进入docker
docker exec -it [容器id] /bin/bash
# 方法二:docker attach进入容器中现有的终端,不会开启新的终端
docker attach [容器id]
其他常用命令
docker top [容器id] #容器进程查看
docker inspect [容器id] #容器信息查看
docker cp [容器id]:文件路径 主机路径 # 将容器中的文件copy到主机中来
提交镜像
docker commit 参数 [容器id] 镜像名称:标签 # 提交容器为一个新的镜像
# 参数说明
-a, --author string # 作者
-m, --message string # 镜像说明
-p, --pause # 提交期间暂停容器,默认true
#示例:
[root@localhost ~]# docker commit -a="sr" -m="cp resource root.." 1d9b8d00b3c1 tomcat_sr:1.0
sha256:2c03f4ad3dcaaf4ef50978b0e1585b36e25589963e4c5b156e0860f6cc5e7cfc
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat_sr 1.0 2c03f4ad3dca 7 seconds ago 684MB
tomcat latest fb5657adc892 7 months ago 680MB