Docker命令整理&示例
Posted chichu261
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker命令整理&示例相关的知识,希望对你有一定的参考价值。
没有示例的命令,将 container_name/image_name进行对应替换.
docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念
docker命令中的镜像名,容器名 支持使用Tab键进行联想
1 Docker容器
docker中默认的命令是对容器进行操作 ,现在看到容器相关的命令是默认没有container的。简单举例: docker run
是docker container run
的简写。
1.1 docker run 运行一个新的容器
# 参数说明
## 常用参数
-d # 后台运行容器,并返回容器ID
-p # 指定端口映射,格式为:主机(宿主)端口:容器端口
--name # 为容器指定一个名称;
-v # 绑定一个卷,映射本地实际路径 --volume
-a stdin # 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
--cpuset="0-2" 或 --cpuset="0,1,2" # 绑定容器到指定CPU运行
--dns 8.8.8.8 #指定容器使用的DNS服务器,默认和宿主一致
--dns-search example.com # 指定容器DNS搜索域名,默认和宿主一致
-e username="ritchie" # 设置环境变量
--env-file=[] # 从指定文件读入环境变量
--expose=[] # 开放一个端口或一组端口
-h "mars" # 指定容器的hostname
-i # 以交互模式运行容器,通常与 -t 同时使用
--link=[] # 添加链接到另一个容器
-m # 设置容器使用内存最大值
--net="bridge" # 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
-P # 随机端口映射,容器内部端口随机映射到主机的端口 # 大写P
--rm # 容器退出后自动清理本容器,用于创建临时容器
-t # 为容器重新分配一个伪输入终端,通常与 -i 同时使用
# 示例
# 使用镜像nginx:latest以后台模式启动一个名为mynginx的容器,其中将容器外8080端口映射到容器内,主机目录 /data 映射到容器内/data
docker run --name mynginx -d -p 8080:80 -v /data:/data nginx:latest
docker run -it nginx:latest /bin/bash # 以交互式命令启动一个容器
1.2 docker create 创建容器但不启动
参数命令同docker run
1.3 启动/停止/重启/杀掉容器
docker start container_name # 启动一个停止状态的容器
docker stop contaniner_name # 停止
docker restart container_name # 重启
docker kill container_name
docker kill -s container_name # -s 向即将杀掉的容器内发送一个信号
1.4 删除容器
docker rm container_name
1.5 进入容器
通过容器名
或者容器ID
进入指定的容器。
docker exec -it container_name
docker exec -it container_id
# 参数说明
-i # 即使没有附加也保持STDIN 打开
-t # 分配一个伪终端
-d # 采用在后台运行的分离模式, 我自己用的比较少
# 以交互的模式执行容器内为/home/start_nginx.sh的脚本
docker exec -it mynginx /bin/sh /home/start_nginx.sh
1.6 查看容器运行状态
docker ps # 列出容器
docker ps -a # 列出所有容器(含未运行容器)
# 参数说明
-f # 根据条件过滤显示的内容
--format # 指定返回值的模板文件
-l # 显示最近创建的容器
-n # 列出最近创建的n个容器
--no-trunc # 不截断输出
-q # 静默模式,只显示容器编号
-s # 显示总的文件大小
# 说明
docker ps命令执行后,显示的COMMAND列显示的是 启动容器时运行的命令
2 镜像
2.1 本地镜像管理
2.1.1 加载本地镜像
docker load < ***.tar # 导入本地的docker镜像
docker load -i ***.tar
docker load --input ***.tar
2.1.2 保存镜像
docker save -o out_image.tar test/ubuntu:v3
docker save test/ubuntu:v3 > out_image.tar
# 更多说明
docker save 保存的是镜像(image),docker export 保存的是容器(container);
docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像;
docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称。
2.1.3 查看本地镜像
docker images # 列出本地镜像
docker images test # 列出本地镜像中仓库repository为test的镜像
# 参数说明
-a # 列出本地所有的镜像
--digests # 显示镜像的摘要信息
-f # 显示满足条件的镜像
--format # 指定返回值的模板文件
--no-trunc # 显示完整的镜像信息
-q # 只显示镜像ID
2.1.4 删除本地镜像
docker image rm image_name # 删除本地镜像
docker image rm -f image_name # 强制删除本地镜像
docker rmi image_name1 image_name2 # 删除多个本地镜像
docker rmi -f image_name1 image_name2 # 强制删除多个本地镜像
# docker pure命令
docker image pure # 删除所有未被 tag 标记和未被容器使用的镜像
docker image prune -a # 删除所有未被容器使用的镜像
docker container prune # 删除所有停止运行的容器
2.1.5 创建镜像
docker build [OPTIONS] PATH | URL | -
# 参数说明
--build-arg=[] # 设置镜像创建时的变量
--cpu-shares # 设置 cpu 使用权重
--cpu-period # 限制 CPU CFS周期
--cpu-quota # 限制 CPU CFS配额
--cpuset-cpus # 指定使用的CPU id
--cpuset-mems # 指定使用的内存 id
--disable-content-trust # 忽略校验,默认开启
-f # 指定要使用的Dockerfile路径
--force-rm # 设置镜像过程中删除中间容器
--isolation # 使用容器隔离技术
--label=[] # 设置镜像使用的元数据
-m # 设置内存最大值
--memory-swap # 设置Swap的最大值为内存+swap,"-1"表示不限swap
--no-cache # 创建镜像的过程不使用缓存
--pull # 尝试去更新镜像的新版本
--quiet, -q # 安静模式,成功后只输出镜像 ID
--rm # 设置镜像成功后删除中间容器
--shm-size # 设置/dev/shm的大小,默认值是64M
--ulimit # Ulimit配置
--squash # 将 Dockerfile 中所有的操作压缩为一层
--tag, -t # 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签
--network # 默认 default。在构建期间设置RUN指令的网络模式
# 示例
docker build -t test/ubuntu:v1 . # 使用当前目录的 Dockerfile 创建镜像,标签为 test/ubuntu:v
docker build github.com/creack/docker-firefox # 使用URL的 Dockerfile 创建镜像。
2.2 远程镜像Docker Hub
远程镜像的概念可以参照git,区别在于git存储的是代码,远程镜像库存储的是docker镜像。
2.2.1 docker pull
docker pull java
docker pull -a java # 下载REPOSITORY为java的所有镜像
2.2.2 docker push
docker push mynginx:v1 # 上传本地镜像mynginx:v1到远程镜像库
3 Docker版本信息
docker info # 显示docker详细信息
docker version # 显示docker版本信息
【参考】
1、Docker 命令大全
2、【官网】Use the Docker command line
以上是关于Docker命令整理&示例的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
CentOS yum 命令出现 [Errno 14] curl#6 - "Couldn't resolve host ..." 的解决方法(代码片段