docker常用命令

查看docker版本:

# docker version

或者 # docker -v

 

查看docker详细信息,包括镜像和容器数

# docker info

 

搜索docker镜像:

# docker search all     //所有镜像

docker search 用于从 Docker Hub(https://hub.docker.com)中搜索指定的镜像

  • --automated :只列出 automated build类型的镜像;
  • --no-trunc :显示完整的镜像描述;
  • -s :列出收藏数不小于指定值的镜像。

# docker search -s 100 centos //列出收藏数大于100的centos镜像

输出详情:

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

 

获取dock镜像

# docker pull 镜像名

或者 # docker image pull 镜像名

-a :拉取所有 tagged 镜像

 

查看镜像列表,列出本地的所有images

# docker images

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。

# docker images centos        //列出本地镜像中REPOSITORY为centos的镜像列表

 

给镜像打标签

# docker tag 11662b14f5e0 镜像名:标签

一个镜像可以打多个标签

# docker tag 镜像名:标签 新名:新标签

共用一个镜像ID

 

删除镜像,从本地删除一个已经下载的镜像

# docker rmi 镜像名:标签 (需先删除容器)

  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

或者# docker image rmi 镜像名:标签

移除一个或多个容器实例

# docker rm 容器名1 容器名2

移除所有容器

# docker rm $(docker ps -aq)

-a:显示所有docker实例

-q:只显示container id

使用这个命令,把docker ps -aq产生的输入作为输入传入到docker rm命令,达到删除所有容器实例的效果。

 

创建一个容器并运行:

# docker run -tid --name 容器名 镜像名:标签 /bin/bash

  • -a stdin  : 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d  : 后台运行容器,并返回容器ID;
  • -i   : 以交互模式运行容器,通常与 -t 同时使用;
  • -P  : 随机端口映射,容器内部端口随机映射到主机的高端口
  • -p  : 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t   : 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name="nginx-lb"                  : 为容器指定一个名称;
  • --dns 8.8.8.8                          : 指定容器使用的DNS服务器,默认和宿主一致;
  • --dns-search example.com    : 指定容器DNS搜索域名,默认和宿主一致;
  • -h "mars"                                : 指定容器的hostname;
  • -e username="ritchie"            : 设置环境变量;
  • --env-file=[]                            : 从指定文件读入环境变量;
  • -m                                          :设置容器使用内存最大值;
  • --net="bridge"                         : 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • --link=[]                                   : 添加链接到另一个容器;
  • --expose=[]                             : 开放一个端口或一组端口;
  • --volume , -v                           : 绑定一个卷

或者# docker create //只创建容器不运行

 

设置容器开机自启:

# docker run -tid --restart always --name 容器名 镜像名 /bin/bash

--restart=always : 设置容器开机自启,在创建容器的时候使用

--restart=no :关闭开机自启

如果容器已经被创建,我们想要修改容器的重启策略

# docker update --restart no 容器名

 

创建d2容器并与d1建立容器间网络的持久性连接

# docker run -itd --name d2 --link=d1:mysql centos /bin/bash

在/etc/hosts内查看解析

 

创建容器时将本地目录挂载到容器,本地与容器共用该目录

# docker run -tid -v /本地目录:/tmp/data --name c1 centos /bin/bash

# docker run -tid --volumes-from c1 --name c2 centos /bin/bash   //创建c2也同c1一样共享该目录,感觉没什么用,直接用上一条就行了

 

退出容器:

快捷键:Ctrl+p+q                      //该方式退出但不暂停容器

容器内执行: # exit 或 ctrl+d    //该方式退出容器并关闭容器

 

显示docker服务信息:

# docker ps               //列出容器

或者 # docker container ls

  • -a  :显示所有的容器,包括未运行的。
  • -f   :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l   :显示最近创建的容器。
  • -n  :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q  :静默模式,只显示容器编号。
  • -s  :显示总的文件大小。

输出详情:

CONTAINER ID :容器ID

IMAGE :使用的镜像

COMMAND :容器里面运行的命令

CREATED : 创建时间

STATUS :容器的状态

PORTS :容器的端口映射

NAMES :容器的名字

status状态有7种:

  • created(已创建)
  • restarting(重启中)
  • running(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

在运行的容器中执行命令

# docker exec

  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

docker exec -it mynginx /bin/sh /root/runoob.sh

//在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本

 

 

单独某个容器的详细信息:

# docker inspect d95          //d95是我机器上运行的一个容器ID的前3个字符

# docker inspect 容器名

  • -f :指定返回值的模板文件。
  • -s :显示总的文件大小。
  • --type :为指定类型返回JSON。

 

重新进入容器:

# docker attach 容器名

 

启动某个容器:

# docker start 容器名

# docker restart 容器名

 

停止某个docker:

# docker kill 026e

# docker stop 容器名

 

从容器创建一个新的镜像

# docker commit

  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。

# docker commit -a "tanxiao" -m "my nginx" -p 容器名或ID 镜像名:标签

 

备份、注入本地镜像

docker save -o 备份名.tar 镜像名:标记        //备份

docker load --input 包名                              //注入

docker load < 包名                                       //注入

 

常用操作流程示意图,马哥视频里截出来的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值