docker常用命令

一、docker 命令介绍

1、帮助命令

docker --help
管理命令:
  container  管理容器
  image    管理镜像
  network   管理网络

命令:
  attach   介入到一个正在运行的容器
  build    根据 Dockerfile 构建一个镜像
  commit   根据容器的更改创建一个新的镜像
  cp     在本地文件系统与容器中复制 文件/文件夹
  create   创建一个新容器
  exec    在容器中执行一条命令
  images   列出镜像
  kill    杀死一个或多个正在运行的容器  
  logs    取得容器的日志
  pause    暂停一个或多个容器的所有进程
  ps     列出所有容器
  pull    拉取一个镜像或仓库到 registry
  push    推送一个镜像或仓库到 registry
  rename   重命名一个容器
  restart   重新启动一个或多个容器
  rm     删除一个或多个容器
  rmi     删除一个或多个镜像
  run     在一个新的容器中执行一条命令
  search   在 Docker Hub 中搜索镜像
  start    启动一个或多个已经停止运行的容器
  stats    显示一个容器的实时资源占用
  stop    停止一个或多个正在运行的容器
  tag     为镜像创建一个新的标签
  top     显示一个容器内的所有进程
  unpause   恢复一个或多个容器内所有被暂停的进程 

二、镜像相关

1、拉取镜像

docker pull

2、查看镜像

docker images

3、删除镜像

docker rmi
常用参数:
1. -f:强制删除运行中的容器

4、创建镜像

(1)对源镜像更改后重新建立新镜像

docker commit
常用参数:
1. -m:本次提交信息
2. --author="" :作者

(2)使用Dockerfile文件来构建镜像

docker build
常用参数:

1. -t x/y:z:指定镜像的命名空间为x仓库为y,tag为z

三、容器相关

1、运行容器

docker run
常用参数:
--name:为容器指定名称
-it:启动一个交互型容器,此参数为我们和容器提供了一个交互shell
-d:创建后台型容器
-restart=always:容器退出后自动重启
-restart=on-failure:x:容器退出时如果返回值是非0,就会尝试重启x次
-p x:y :主机端口:容器端口
-P:随机分配一个49000到49900的端口
-v:创建数据卷
-n :指定dns
-h : 指定容器的hostname
-e :设置环境变量
-m :设置容器使用内存最大值
--net: 指定容器的网络连接类型,支持 bridge/host/none/container
--link=x: 添加链接到另一个容器x
--expose=x: 开放端口x

这里docker create和docker run -it创建的容器都是交互型容器

2、查看正在运行的容器

docker ps
常用参数:
  1. -a:查看所有容器
  2. -l:只列出最近创建的
  3. -n=x:只列出最后创建的x个
  4. -q:只列出容器id

3、停止容器

docker stop //方式较温柔,慢慢的停止容器的运行
docker kill //方式简单粗暴,立即停止容器运行

4、删除容器

docker rm
常用参数:
 1. -f:强制删除运行中的容器
 2. docker rm `docker ps -aq`:删除所有容器

5、查看容器日志

docker logs
常用参数:
 1. -f:实时查看日志
 2. --tail=x:查看最后x行
 3. -t:查看日志产生的时间

6、查看容器进程

docker top

7、查看容器配置信息

docker inspect
常用参数:
1. -f='{{x}}':查看x配置

8、进入容器

(1)进入交互型容器

docker attch
常用参数:
 1. -f:强制删除运行中的容器
 2. docker rm `docker ps -aq`:删除所有容器

(2)进入后台型容器

docker exec
常用参数:
1. -it 容器id /bin/bash:进入到后台容器

四、Dockerfile

FROM

FROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令。至于image则可以是任何合理存在的image镜像。 FROM 一定是首个非注释指令 Dockerfile. FROM 可以在一个 Dockerfile 中出现多次,以便于创建混合的images。 如果没有指定 tag ,latest 将会被指定为要使用的基础镜像版本。

MAINTAINER

这里是用于指定镜像制作者的信息 RUN RUN命令将在当前image中执行任意合法命令并提交执行结果。命令执行提交后,就会自动执行Dockerfile中的下一个指令。 层级 RUN 指令和生成提交是符合Docker核心理念的做法。它允许像版本控制那样,在任意一个点,对image 镜像进行定制化构建。 RUN 指令缓存不会在下个命令执行时自动失效。比如 RUN apt-get dist-upgrade -y 的缓存就可能被用于下一个指令. --no-cache 标志可以被用于强制取消缓存使用。

ENV

ENV指令可以用于为docker容器设置环境变量 ENV设置的环境变量,可以使用 docker inspect命令来查看。同时还可以使用docker run --env =来修改环境变量。

USER USER

用来切换运行属主身份的。Docker 默认是使用 root,但若不需要,建议切换使用者身分,毕竟 root 权限太大了,使用上有安全的风险。

WORKDIR

WORKDIR 用来切换工作目录的。Docker 默认的工作目录是/,只有 RUN 能执行 cd 命令切换目录,而且还只作用在当下下的 RUN,也就是说每一个 RUN 都是独立进行的。如果想让其他指令在指定的目录下执行,就得靠 WORKDIR。WORKDIR 动作的目录改变是持久的,不用每个指令前都使用一次 WORKDIR。

COPY

COPY 将文件从路径 复制添加到容器内部路径 必须是想对于源文件夹的一个文件或目录,也可以是一个远程的url, 是目标容器中的绝对路径。 所有的新文件和文件夹都会创建UID 和 GID 。事实上如果 是一个远程文件URL,那么目标文件的权限将会是600。

ADD

ADD 将文件从路径 复制添加到容器内部路径 必须是想对于源文件夹的一个文件或目录,也可以是一个远程的url。 是目标容器中的绝对路径。 所有的新文件和文件夹都会创建UID 和 GID。事实上如果 是一个远程文件URL,那么目标文件的权限将会是600。

VOLUME

创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。

EXPOSE

EXPOSE 指令指定在docker允许时指定的端口进行转发。

CMD

Dockerfile.中只能有一个CMD指令。 如果你指定了多个,那么最后个CMD指令是生效的。 CMD指令的主要作用是提供默认的执行容器。这些默认值可以包括可执行文件,也可以省略可执行文件。 当你使用shell或exec格式时, CMD 会自动执行这个命令。

ONBUILD

ONBUILD 的作用就是让指令延迟執行,延迟到下一个使用 FROM 的 Dockerfile 在建立 image 时执行,只限延迟一次。 ONBUILD 的使用情景是在建立镜像时取得最新的源码 (搭配 RUN) 与限定系统框架。

ARG

ARG是Docker1.9 版本才新加入的指令。 ARG 定义的变量只在建立 image 时有效,建立完成后变量就失效消失 LABEL 定义一个 image 标签 Owner,并赋值,其值为变量 Name 的值。(LABEL Owner=$Name )

ENTRYPOINT

ENTRYPOINT是指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。

posted @ 2022-03-13 15:28  HZX↑  阅读(62)  评论(0编辑  收藏  举报