一、帮助命令
1、查看docker版本和信息
- docker version。查看简略的版本信息。
- docker info。查看详细的docker系统信息,包括容器数量和镜像等信息。
2、万能命令
- docker 命令 --help。查看命令的使用方法。
二、镜像命令
1、docker images。查看所有的镜像。
docker -a。查看所有的镜像信息。
docker -q。查看所有镜像的ID信息。
Options: -a, --all Show all images (default hides intermediate images) --digests Show digests -f, --filter filter Filter output based on conditions provided --format string Pretty-print images using a Go template --no-trunc Don't truncate output -q, --quiet Only show image IDs

REPOSITORY:镜像的仓库源
TAG:镜像的标签
IMAGE ID :镜像的ID
CREATE:镜像的创建时间
SIZE:镜像的大小
-a和-q两个参数可以联合起来使用。
2、docker search xxx。搜索镜像。
例子:查看python的镜像。
命令:docker search python。结果会显示仓库中所有的可用镜像。

参数
Options: -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
可以设置过滤条件。
例子:docker search python --filter=STARS=3000。查找仓库中STARS数大于3000的镜像。

3、docker pull。下载镜像,可指定版本,不指定默认下载最新版本。
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST] Pull an image or a repository from a registry Options: -a, --all-tags Download all tagged images in the repository --disable-content-trust Skip image verification (default true) --platform string Set platform if server is multi-platform capable -q, --quiet Suppress verbose output
例子:docker pull mysql:5.7。下载mysql5.7版本

查看已经下载的镜像

4、docker rmi。删除镜像。
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] Remove one or more images Options: -f, --force Force removal of the image --no-prune Do not delete untagged parents
基本操作:docker rmi -f d1165f221234。删除镜像ID为d1165f221234的镜像。

删除成功
骚操作:docker rmi -f $(docker images -aq)。删除所有的镜像,$()传参的作用,即将所有镜像作为参数返回。
删除多个镜像:docker rmi -f 镜像id 镜像id 镜像id
三、基本容器命令
1、docker run。运行容器。
常用参数:
--name="Name" 容器名字,例如tomcat1,tomcat2,用来区分容器
-d 后台运行方式启动Docker,一般都是后台运行
-it 使用交互式方式进行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080,常有如下四种使用方式。
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
容器端口
例子:docker run -it centos /bin/bash。以交互的方式运行centos容器(需要先拉去centos镜像),/bin/bash是控制台的地址。
![]()
运行之后,用户名变成了镜像的id。

centos容器内部的文件系统与外部的系统高度相似,但是二者之间当前没有任何联系。
2、exit。从容器中退出。
3、docker ps。查看所有正在运行的容器。
docker ps -a。查看所有容器,包括历史曾经运行过的容器。

docker ps -a -n=1。显示最近创建的容器。个数表示容器个数。
docker ps -aq。显示所有容器的编号。
4、容器退出。
- 第一种方式:exit。直接停止容器并退出。
- 第二种:Ctrl+P+Q。不停止容器并退出。

5、删除容器
- docker rm 容器Id 容器id #删除指定容器,不能删除正在运行的容器,强制删除应使用下面的指令。
- docker rm -f $(docker ps -aq) #删除所有的容器

6、启动容器相关
- docker start 容器di #启动容器
- docker restart 容器id #重启容器
- docker stop 容器id #停止正在当前运行容器
- docker kill 容器id #强制停止当前运行的容器
四、最常用的容器命令
1、后台启用Docker
命令:docker run -d 镜像名。
问题:不同于 -it 的交互形式运行容器,后台运行容器之后必须要有前台进程与后台容器交互,否则容器会自动关闭。
例子:

启动了centos这个镜像,但是打开容器进程查看容器运行状态都是退出。这是因为启动centos之后并没有对应的前台进程。
2、查看容器日志
命令:docker logs -tf --tail 条数 容器id
Usage: docker logs [OPTIONS] CONTAINER Fetch the logs of a container Options: --details Show extra details provided to logs -f, --follow Follow log output --since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes) -n, --tail string Number of lines to show from the end of the logs (default "all") -t, --timestamps Show timestamps --until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
一般用 -ft 表示所有的日志信息。
例子:
(1)先创建一个容器实例,并往里面生产日志。命令:docker run -d centos /bin/bash -c "while true;do echo xiami;sleep 1;done"

(2)查看日志输出。docker logs -ft --tail 10 容器id

3、查看容器内部的所有进程信息
命令:docker top 容器id

4、查看容器中所有的元数据
可以查看容器中所有的数据信息。
Usage: docker inspect [OPTIONS] NAME|ID [NAME|ID...] Return low-level information on Docker objects Options: -f, --format string Format the output using the given Go template -s, --size Display total file sizes if the type is container --type string Return JSON for specified type
命令:docker inspect 容器id

5、进入当前运行容器
容器通常是以后台方式运行的,如果想要修改容器的一些内部信息就需要重新进入。
方式一:
命令:docker exec -it 容器id bashshell
例子:docker exec -it 容器id /bin/bash

上图所示,已经切换到容器中了。
方式二:
命令:docker attach 容器id
例子:

方式一:进入容器后开启一个新的终端,可以操作容器;
方式二:进入容器中正在执行的命令行,不会启动新的进程。
6、从容器内拷贝文件到主机上
容器内部和主机是相对独立的,所以需要进行文件拷贝。
命令:docker cp 容器id:目标文件路径+文件名 主机目标路径
例子:
(1)在容器中创建一个文件夹。并退出到宿主机。

(2)在宿主机上将容器中文件夹拷贝出来

posted on
浙公网安备 33010602011771号