docker
[TOC]
Docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
命令
容器生命周期管理
docker run
创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明
-d, --detach
指定容器运行于前台还是后台,默认为false-i, --interactive
打开STDIN,用于控制台交互-t, --tty
分配tty设备,该可以支持终端登录,默认为false-u, --user
指定容器的用户-a, --attach
登录容器(必须是以docker run -d启动的容器)-w, --workdir
指定容器的工作目录-c, --cpu-shares
设置容器CPU权重,在CPU共享场景使用-e, --env
指定环境变量,容器中可以使用该环境变量-m, --memory
指定容器的内存上限-P, --publish-all
指定容器暴露的端口-p, --publish
指定容器暴露的端口
eg: -p 8080:80, --publish 8080:80
-h, --hostname
指定容器的主机名
eg: -h gitlab.chain.cn, --hostname gitlab.chain.cn
-v, --volume
给容器挂载存储卷,挂载到容器的某个目录
eg: -v v /Users/zhangzc/gitlab-runner/config:/etc/gitlab-runner
--volume /Users/zhangzc/gitlab-runner/config:/etc/gitlab-runner
--name
指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
eg: --name gitlab-ce
--net
容器网络设置(bridge
: 使用docker daemon指定的网桥;host
: 容器使用主机的网络;container:NAME_or_ID
: 使用其他容器的网路,共享IP和PORT等网络资源;none
: 容器使用自己的网络(类似--net=bridge),但是不进行配置)--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说明
-f
: 通过SIGKILL信号强制删除一个运行中的容器-l
: 移除容器间的网络连接,而非容器本身-v
: 删除与容器关联的卷
实例
docker rm gitlab
docker exec
在运行的容器中执行命令
语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明
-d
: 分离模式: 在后台运行-i
: 即使没有附加也保持STDIN 打开-t
: 分配一个伪终端
实例
docker exec -it gitlab bash
容器操作
docker logs
获取容器的日志
语法
docker logs [OPTIONS] CONTAINER
OPTIONS说明
-f
: 跟踪日志输出--since
: 显示某个开始时间的所有日志-t
: 显示时间戳--tail
: 仅列出最新N条容器日志
实例
docker logs -f gitlab
docker inspect
获取容器/镜像的元数据。
语法
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明
-f
: 指定返回值的模板文件。-s
: 显示总的文件大小。--type
: 为指定类型返回JSON。
实例
docker inspect gitlab
镜像仓库
docker pull
从镜像仓库中拉取或者更新指定镜像
语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS说明
-a
: 拉取所有 tagged 镜像--disable-content-trust
: 忽略镜像的校验,默认开启
实例
docker pull gitlab/gitlab-ce
docker push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
语法
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明
--disable-content-trust
: 忽略镜像的校验,默认开启
实例
docker push gitlab/gitlab-ce:chain
docker search
从Docker Hub查找镜像
语法
docker search [OPTIONS] TERM
OPTIONS说明
--automated
: 只列出 automated build类型的镜像;--no-trunc
: 显示完整的镜像描述;-s
: 列出收藏数不小于指定值的镜像。
实例
docker search gitlab
本地镜像管理
docker load
从.tar存档或STDIN加载镜像
语法
docker load [OPTIONS]
OPTIONS说明
--input , -i
: 从.tar存档文件读取--quiet , -q
: 禁止加载输出
实例
docker load -i gitlab-ce.tar
docker save
将指定镜像保存成 tar 归档文
语法
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明
--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说明
--file , -f
: 指定要使用的Dockerfile路径,如果不使用-f,则默认将上下文路径下的名为Dockerfile的文件认为是构建镜像的"Dockerfile"--tag , -t
: 指定镜像名称和tagPATH | URL
: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件。
现在让我们在看看docker build -t myimage .
这条命令,在这条命令中,使用-t
指定了镜像名为myimage,由于没有使用-f指令,所以默认使用上下文路径下名为Dockerfile的文件认为是构建镜像的Dockerfile
。最后指定上下文路径,在这条命令中,上下文路径是.
。(小数点.
代表着当前目录)
实例
docker build -t runoob/ubuntu:v1 .
其他
完
转载请注明出处:
Docker常用命令