Docker命令整理&示例

Posted chichu261

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker命令整理&示例相关的知识,希望对你有一定的参考价值。

没有示例的命令,将 container_name/image_name进行对应替换.
docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念
docker命令中的镜像名,容器名 支持使用Tab键进行联想

1 Docker容器

docker中默认的命令是对容器进行操作 ,现在看到容器相关的命令是默认没有container的。简单举例: docker rundocker 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

为 Blogger 上的博客格式化代码片段 [关闭]

Sphinx - 在代码块片段中使用省略号 (...)

CentOS yum 命令出现 [Errno 14] curl#6 - &quot;Couldn&#39;t resolve host ...&quot; 的解决方法(代码片段

docker命令整理

docker命令整理