常用的Docker命令及示例汇总分析

目录
  • 1、容器生命周期管理
    • (1)docker run
    • (2)start/stop/restart
    • (3)docker kill
    • (4)docker rm
    • (5)pause/unpause
    • (6)create
    • (7)docker exec
    • (8)docker ps
    • (9)docker inspect
    • (10)top

1、容器生命周期管理

(1)docker run

命令说明
    创建一个新的容器并运行一个命令
语法

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

OPTIONS说明:

-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=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷

常用实例

使用docker镜像fate:latest以后台模式启动一个容器,并将容器命名为myfate。

docker run --name myfate -d fate:latest

使用镜像fate:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d fate:latest

使用镜像 fate:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d fate:latest

绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

使用镜像fate:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

wh@wh-pc:~$ docker run -it fate:latest /bin/bash
root@b8573233d675:/#

(2)start/stop/restart

命令说明:
    docker start :启动一个或多个已经被停止的容器
    docker stop :停止一个运行中的容器
   docker restart :重启容器
使用方法:
    启动已被停止的容器myfate

docker start myfate

停止运行中的容器myfate

docker stop myfate

重启容器myfate

docker restart myfate

(3)docker kill

命令说明
    杀掉一个运行中的容器。
实例
    杀掉运行中的容器myfate

wh@wh-pc:~$ docker kill -s KILL myfate

(4)docker rm

命令说明
    删除一个或多个容器
语法

docker rm [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS说明:

-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。

常用实例

强制删除容器 fate01、fate02:

docker rm -f fate01 fate02

移除容器 fate01 对容器 fate02 的连接,连接名 db:

docker rm -l db

删除容器 fate, 并删除容器挂载的数据卷:

docker rm -v fate

删除所有已经停止的容器:

docker rm $(docker ps -a -q)

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

通过镜像的id来删除指定镜像

docker rmi <image id>

删除所有镜像

docker rmi $(docker images -q)

(5)pause/unpause

命令说明
docker pause :暂停容器中所有的进程。
docker unpause :恢复容器中所有的进程。
语法

docker pause CONTAINER [CONTAINER…]
docker unpause CONTAINER [CONTAINER…]

常用实例
暂停数据库容器fate提供服务。

docker pause fate

恢复数据库容器 fate 提供服务。

docker unpause fate

(6)create

命令说明
docker create :创建一个新的容器但不启动它
用法同 docker run
语法

docker create [OPTIONS] IMAGE [COMMAND] [ARG…]
语法同 docker run

常用实例
使用docker镜像fate:latest创建一个容器,并将容器命名为myfate

wh@wh-pc:~$ docker create  --name myfate  fate:latest

(7)docker exec

命令说明
在运行的容器中执行命令
语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
常用实例
在容器 myfate中以交互模式执行容器内 /root/init.sh 脚本:

wh@wh-pc:~$ docker exec -it myfate /bin/sh /root/runoob.sh

在容器 fate 中开启一个交互模式的终端:

wh@:~$ docker exec -i -t  myfate /bin/bash

也可以通过 docker ps -a 命令查看已经在运行的容器,然后使用容器 ID 进入容器。
查看已经在运行的容器 ID:

# docker ps -a
...
9df70f9a0714        openjdk             "/usercode/script.sh…"
...

第一列的 9df70f9a0714 就是容器 ID。
通过 exec 命令对指定的容器执行 bash:

# docker exec -it 9df70f9a0714 /bin/bash

(8)docker ps

命令说明
列出容器
语法

docker ps [OPTIONS]

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

wh@wh-pc:~$ docker ps
CONTAINER ID   IMAGE          COMMAND                ...  PORTS                    NAMES
09b93464c2f7   fate:latest   "fate -g 'daemon off" ...  80/tcp, 443/tcp              myfate
96f7f14e99ab   mysql:5.6      "docker-entrypoint.sh" ...  0.0.0.0:3306->3306/tcp   mymysql

输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。

状态有7种:

created(已创建)

restarting(重启中)

running(运行中)

removing(迁移中)

paused(暂停)

exited(停止)

dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。

列出最近创建的5个容器信息。

wh@whpc:~$ docker ps -n 5
CONTAINER ID        IMAGE               COMMAND                   CREATED
09b93464c2f7        fate:latest        "fate -g 'daemon off"    2 days ago   ...
b8573233d675        fate:latest        "/bin/bash"               2 days ago   ...
b1a0703e41e7        fate:latest        "fate -g 'daemon off"    2 days ago   ...
f46fb1dec520        5c6e1090e771        "/bin/sh -c 'set -x \t"   2 days ago   ...
a63b4a5597de        860c279d2fec        "bash"                    2 days ago   ..

根据标签过滤

$ docker run -d --name=test-nginx --label color=blue nginx
$ docker ps --filter "label=color"
$ docker ps --filter "label=color=blue"

根据名称过滤

$ docker ps --filter"name=test-nginx"

根据状态过滤

$ docker ps -a --filter 'exited=0'
$ docker ps --filter status=running
$ docker ps --filter status=paused

根据镜像过滤

#镜像名称
$ docker ps --filter ancestor=nginx
#镜像ID
$ docker ps --filter ancestor=d0e008c6cf02

根据启动顺序过滤

$ docker ps -f before=9c3527ed70ce
$ docker ps -f since=6e63f6ff38b0

(9)docker inspect

命令说明
docker inspect : 获取容器/镜像的元数据。
语法

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

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

常用实例
获取镜像fate:1.6的元信息。

wh@wh-pc:~$ docker inspect fate:1.6
[
    {
        "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",
        "RepoTags": [
            "fate:1.6"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2016-05-24T04:01:41.168371815Z",
        "Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54",
        "ContainerConfig": {
            "Hostname": "b0cf605c7757",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {}
            },
...

获取正在运行的容器mymysql的 IP。

wh@wh-pc:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myfate
192.17.0.3

(10)top

命令说明
查看容器中运行的进程信息,支持 ps 命令参数。
常用实例

wh@wh-pc:~/mysql$ docker top mysql
UID    PID    PPID    C      STIME   TTY  TIME       CMD
999    40347  40331   18     00:58   ?    00:00:02   mysqld

以上就是常用的Docker命令及示例汇总分析的详细内容,更多关于Docker命令及示例汇总的资料请关注我们其它相关文章!

(0)

相关推荐

  • docker常用命令总结(推荐)

    一.汇总: 总的来说分为以下几种: Docker环境信息 - docker [info|version] 容器生命周期管理 - docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause] 容器操作运维 - docker [ps|inspect|top|attach|wait|export|port|rename|stat] 容器rootfs命令 - docker [commit|cp|diff] 镜像仓库 - docker

  • Docker 容器操作指令汇总详解

    1. 创建并运行 一个容器 docker run -it --rm centos:latest bash run 运行容器 -it 以交互方式运行容器 --rm 退出容器后删除容器 centos:latest 基于 镜像启动容器 bash 命令 交互式shell 2. 退出容器 exit 3. 查看容器 docker ps 查看正在运行的容器 docker ps -a 查看所有容器 4.删除容器 docker rm [容器id ] 5 . 查看 镜像 容器 数据卷 占用空间 docker sys

  • Docker 常用命令整理(实用篇)

    1. 查看docker信息(version.info) # 查看docker版本 docker version # 显示docker系统的信息 docker info 2. 对image的操作(search.pull.images.rmi.history) # 检索image docker search image_name # 下载image docker pull image_name #列出镜像列表; -a, --all=false Show all images; --no-trunc=

  • Docker 常用命令整理及使用注意事项总结

    常用docker命令 对docker常用命名的详细解释,让你快速学会docker的使用! docker,轻量级虚拟机,也有人称之为应用容器 优点:1.部署速度快 2.测试服务与部署可保持完全一致 常用命令 1.查看容器的root用户密码 docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1 因为Docker容器启动时的root用户的密码是随机分配的.所以,通过这种方式就可以得到redmine容器的root用户的密码了. 2.

  • 常用的Docker命令及示例汇总分析

    目录 1.容器生命周期管理 (1)docker run (2)start/stop/restart (3)docker kill (4)docker rm (5)pause/unpause (6)create (7)docker exec (8)docker ps (9)docker inspect (10)top 1.容器生命周期管理 (1)docker run 命令说明     创建一个新的容器并运行一个命令 语法 docker run [OPTIONS] IMAGE [COMMAND] [

  • 常用的Docker基本命令及用法汇总

    查看docker安装信息 docker info 获取docker镜像 docker pull azraelrabbit/monupw 创建docker容器 docker run --name monojexus -d -p 32022:22 -p 32080:80 -v /mydata:/data azraelrabbit/monupw 以后台进程的方式运行docker容器 sample_job=$(docker run -d monojexus /bin/sh -c "while true;

  • PHP常用header头定义代码示例汇总

    在php的开发中,我们常常需要使用到header函数头来进行做标记 header() 函数向客户端发送原始的 HTTP 报头. 常用header设置列表如下: header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301 header('Location: http:/

  • Spring钩子接口汇总分析使用示例

    目录 1.Aware 系列接口 2.InitializingBean 3.BeanPostProcessor 4.BeanFactoryPostProcessor 5.FactoryBean 6.ApplicationListener 1.Aware 系列接口 Aware 系列接口是用来获取 Spring 内部对象的接口.Aware 自身是一个顶级接口,它有一系列子接口,在一个 Bean 中实现这些子接口并重写里面的 set 方法后,Spring 容器启动时,就会回调该 set 方法,而相应的对

  • Docker学习之常用的基础命令总结

    前言 Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container).下面这篇文章将简单介绍一下Docker常用的一些基础命令. # 在ubuntu中安装docker $ sudo apt-get install docker.io # 查看docker的版本信息 $ docker version # 查看安装docker的信息 $ docker info # 查看本机Docker中存在哪些镜像

  • Docker 最常用的镜像命令和容器命令详解

    本文列出了 Docker 使用过程中最常用的镜像命令和容器命令,以及教大家如何操作容器数据卷,实现容器数据的备份.熟练练习这些命令以后,再来一些简单的应用部署练习,大家就可以学习 Docker 的镜像构建.备份恢复迁移.镜像仓库.网络.集群等等更多的内容. 镜像相关命令 官方文档:https://docs.docker.com/reference/ 查看镜像 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZ

  • 常用的DOS命令汇总

    打开cmd方式: 开始菜单点击 win+R然后键入cmd打开(推荐) 任意文件夹下,shift+鼠标右键点击,在此处打开命令行窗口 任意文件夹地址栏前输入cmd加空格 常用命令: 盘符切换 E: 查看当前目录下所有的文件 dir 进入同级的其他目录 cd  videos 进入不同级的其他目录 cd /d music 返回上一级 cd .. 创建文件夹 md test 删除文件夹 rd test 创建文件 cd>test.txt 删除文件 del test.txt 清楚屏幕 cls 退出终端 ex

  • Docker compose配置文件写法及命令使用示例

    目录 docker-compose配置文件写法 docker-compose的命令 示例 docker-compose配置文件写法 命令 用途 build 本地创建镜像 command 覆盖缺省命令 depends_on 索拉容器 ports 暴露端口 volumes 卷 environment 环境变量 image pull镜像 docker-compose的命令 命令 用途 build [serviceName] 进行组合构建 [单个服务] up [-d] 创建并且启动容器 [后台启动] s

  • Vue常用实例方法示例梳理分析

    目录 前言 vue实例方法和实例数据 1.vm.$set 2.vm.$delete 3.vm.$watch 实例方法和事件 1.vm.$on 2.vm.$emit 3.vm.$once 4.vm.$off 实例方法和生命周期 1.vm.$mount 2.vm.$destroy 3.vm.$nextTick 前言 vue实例的属性 获取挂载的元素 --vm.$el 获取实例的初始化选项的对象 --vm.$options 获取观察的数据对象 --vm.$data 一对象,可持有的注册过ref属性的所

  • 一篇文章学会Docker命令小结

    简介 Docker的命令分为使用命令和管理命令,而本文对Docker的使用命令和管理命令进行了汇总和样例提示,以便于他人学习和本人回顾使用. Docker不仅提供了在各个环节下使用的命令,还提供了DockerAPI供我们使用Http来和Docker进行交互,从而开发我们自己的Docker. 由于命令太多,下面给出一个大致的清单供大家对所有命令有一个初步了解,然后就是哪里不会点哪里. 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm

随机推荐