天天看点

Docker

Docker入门--命令篇

基础知识

镜像:类似于用于创建虚拟机的

.iso

文件

容器:虚拟机

Dockerfile:c程序源文件

xxx.c

容器数据卷:共享文件夹

基本命令

查看本地镜像:

docker images [options]

-a   :列出仓库中所有镜像

-q   :只显示所有镜像的id号

--digests   :显示摘要信息

示例:--digest --no-trunc   :显示完整信息

在网络仓库搜索镜像:

docker search [options] xx镜像名字

-filter=stars=30   :点赞数超过30

--no-trunc   :不省略信息

--automated   :只列出automated build类型的镜像

下载某个镜像到本地:

docker pull xx镜像:[版本号] (也可以写镜像ID)

末尾没加版本号

:xxx

默认为最新版

删除本地镜像:

docker rmi [option] xx镜像名(或 id):版本号 默认最新版

-f 镜像1:版本号 镜像2:版本号   :强制删除
示例:-f ${docker images -qa}   删除所有

容器命令( 先有镜像再有容器 )

新建并启动容器:

docker run [option] 镜像名(或 id) [command] [args]

[command] [args] : 需要容器执行的命令和命令的参数   一般为: /bin/bash

[option]:参数

-name   :为容器起一个别称

-d   :后台启动,返回容器id,不进入容器

-i   :以交互模式运行容器 通常与 -t 同时使用

-t   :为容器重新分配一个伪输入终端

-P   :随机端口映射

-p   :指定端口映射 有以下几种形式

  •   hostip:hostPort:containerPort
  •   hostip::containerPort
  •   hostPort:containerPort
  •   containerPort
示例: docker run --name myKali -p 127.0.0.1:8888:8080 kali:19.4 /bin/bash

查看所有正在运行的容器:

docker ps [options] 默认显示正在运行的

-a   :正在运行以及历史运行过的

-l   :显示最近创建的容器

-n 3   :显示最近3个创建的容器

-q   :静默模式,只显示容纳编号

--no-trunc   :不截断输出

退出容器(在容器内部):

exit

  :关闭容器

ctrl + P + Q

  :离开容器,但不关闭

启动容器(之前关闭的):

docker start -i 容器ID

重启容器:

docker restart -i 容器ID

停止容器:

docker stop 容器ID

强制停止容器:

docker kill 容器ID

删除已停止的容器:

docker rm 容器ID

查看容器日志:

docker logs -f -t --tail num 容器ID (-t 显示时间戳 -f 跟紧最新的日志并实时显示打印 --tail 数字 显示最后多少条)

查看容器内运行的进程:

docker top 容器ID

查看容器内部细节:

docker inspect 容器ID

进入正在运行的容器并以命令行交互:

docker attach 容器ID

  :直接进入容器

docker exec -it 容器ID ls -l /temp

  :在外面执行容器内部的命令,得到结果,可以进去容器,也可以不

从容器内拷贝数据到宿主机内::

docker cp 容器ID:容器内路径 目的主机的路径

提交新容器至本地仓库:

docker commit -m=描述信息 -a=作者 容器ID 要创建的目标镜像名:[版本号]

提交到网络仓库:

docker push [OPTIONS] NAME[:TAG]

--disable-content-trust   忽略镜像的校验,默认开启

容器数据卷:

方法一:

docker run -it -v /宿主机绝对路径目录:/容器内目录:权限 镜像名

权限默认为读写

方法二:

  • 主机下建立一个 xxx文件夹
  • 再在此目录下写一个

    .ockfile

    文件 Dockerfile
  • docker built -f /xxx/Dockerfile -t xx/xxx

    搭建镜像名为 xx/xxx
  • docker run -it xx/xxx

数据卷容器:

docker run -it --name docker01 镜像名(或 id)

docker run -it --name docker02 --volumes-from docker01 镜像名(或 id)

相当于继承 并且共享数据卷文件