手记

Docker常用命令

docker

[TOC]

Docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

命令

容器生命周期管理

docker run

创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明

  1. -d, --detach 指定容器运行于前台还是后台,默认为false

  2. -i, --interactive 打开STDIN,用于控制台交互

  3. -t, --tty 分配tty设备,该可以支持终端登录,默认为false

  4. -u, --user 指定容器的用户

  5. -a, --attach 登录容器(必须是以docker run -d启动的容器)

  6. -w, --workdir 指定容器的工作目录

  7. -c, --cpu-shares 设置容器CPU权重,在CPU共享场景使用

  8. -e, --env 指定环境变量,容器中可以使用该环境变量

  9. -m, --memory 指定容器的内存上限

  10. -P, --publish-all 指定容器暴露的端口

  11. -p, --publish 指定容器暴露的端口

eg: -p 8080:80, --publish 8080:80

  1. -h, --hostname 指定容器的主机名

eg: -h gitlab.chain.cn, --hostname gitlab.chain.cn

  1. -v, --volume 给容器挂载存储卷,挂载到容器的某个目录

eg: -v v /Users/zhangzc/gitlab-runner/config:/etc/gitlab-runner
--volume /Users/zhangzc/gitlab-runner/config:/etc/gitlab-runner

  1. --name 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

eg: --name gitlab-ce

  1. --net 容器网络设置(bridge: 使用docker daemon指定的网桥;host: 容器使用主机的网络;container:NAME_or_ID: 使用其他容器的网路,共享IP和PORT等网络资源; none: 容器使用自己的网络(类似--net=bridge),但是不进行配置)

  2. --rm 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

docker start

启动一个或多个已经被停止的容器

语法

docker start [OPTIONS] CONTAINER [CONTAINER...]

实例

dcoker start gitlab

docker stop

停止一个运行中的容器

语法

docker stop [OPTIONS] CONTAINER [CONTAINER...]

实例

docker stop gitlab

docker restart

重启容器

语法

docker restart [OPTIONS] CONTAINER [CONTAINER...]

实例

docker restart gitlab

docker rm

删除一个或多个容器

语法

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明

  1. -f: 通过SIGKILL信号强制删除一个运行中的容器

  2. -l: 移除容器间的网络连接,而非容器本身

  3. -v: 删除与容器关联的卷

实例

docker rm gitlab

docker exec

在运行的容器中执行命令

语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明

  1. -d: 分离模式: 在后台运行

  2. -i: 即使没有附加也保持STDIN 打开

  3. -t: 分配一个伪终端

实例

docker exec -it gitlab bash

容器操作

docker logs

获取容器的日志

语法

docker logs [OPTIONS] CONTAINER

OPTIONS说明

  1. -f: 跟踪日志输出

  2. --since: 显示某个开始时间的所有日志

  3. -t: 显示时间戳

  4. --tail: 仅列出最新N条容器日志

实例

docker logs -f gitlab

docker  inspect

获取容器/镜像的元数据。

语法

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS说明

  1. -f: 指定返回值的模板文件。

  2. -s: 显示总的文件大小。

  3. --type: 为指定类型返回JSON。

实例

docker inspect gitlab

镜像仓库

docker pull

从镜像仓库中拉取或者更新指定镜像

语法

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS说明

  1. -a: 拉取所有 tagged 镜像

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

实例

docker pull gitlab/gitlab-ce

docker push

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

语法

docker push [OPTIONS] NAME[:TAG]

OPTIONS说明

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

实例

docker push gitlab/gitlab-ce:chain

docker search

从Docker Hub查找镜像

语法

docker search [OPTIONS] TERM

OPTIONS说明

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

  2. --no-trunc: 显示完整的镜像描述;

  3. -s: 列出收藏数不小于指定值的镜像。

实例

docker search gitlab

本地镜像管理

docker load

从.tar存档或STDIN加载镜像

语法

docker load [OPTIONS]

OPTIONS说明

  1. --input , -i: 从.tar存档文件读取

  2. --quiet , -q: 禁止加载输出

实例

docker load -i gitlab-ce.tar

docker save

将指定镜像保存成 tar 归档文

语法

docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明

  1. --output , -o: 输出到的文件。

实例

docker save -o gitlab-ce.tar gitlab/gitlab-ce:latest

docker tag

标记本地镜像,将其归入某一仓库

语法

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

实例

docker tag gitlab/gitlab-ce:latest gitlab/gitlab-ce:old

docker build

使用Dockerfile创建镜像

语法

docker build [OPTIONS] PATH | URL | -

OPTIONS说明

  1. --file , -f: 指定要使用的Dockerfile路径,如果不使用-f,则默认将上下文路径下的名为Dockerfile的文件认为是构建镜像的"Dockerfile"

  2. --tag , -t: 指定镜像名称和tag

  3. PATH | URL: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件。
    现在让我们在看看docker build -t myimage .这条命令,在这条命令中,使用-t指定了镜像名为myimage,由于没有使用-f指令,所以默认使用上下文路径下名为Dockerfile的文件认为是构建镜像的Dockerfile。最后指定上下文路径,在这条命令中,上下文路径是.。(小数点.代表着当前目录)

实例

docker build -t runoob/ubuntu:v1 .

其他

转载请注明出处:
Docker常用命令



1人推荐
随时随地看视频
慕课网APP