• Docker常用命令


    在这里插入图片描述

    一、基础操作

    1、查看docker版本
    docker version
    
    • 1
    2、显示docker系统的信息
    docker info
    
    • 1
    3、显示docker运行状态(故障检查)
    service docker status
    
    • 1
    4、启动docker服务
    service docker start
    
    • 1
    5、停止docker服务
    service docker stop
    
    • 1
    6、重启docker服务
    service docker restart
    
    • 1

    二、镜像操作

    1、拉取官方的 Ubuntu 镜像
    docker pull ubuntu
    
    • 1
    2、查看本地所有镜像
    docker images
    
    • 1
    3、删除镜像( 是通过 docker images 命令得到的)
    docker rmi <image_id>
    
    • 1
    4、构建镜像(‘.’ 表示使用当前目录下的 Dockerfile 来构建镜像)
    docker build -t my_image .
    
    • 1
    5、重命名镜像
    docker tag my_image my_new_image
    
    • 1
    6、镜像推送到私有仓库
    # 标记本地镜像以便推送到私有仓库
    docker tag my-image myregistry.example.com:5000/my-image
    
    # 推送镜像到私有仓库
    docker push myregistry.example.com:5000/my-image
    
    # 从私有仓库拉取镜像
    docker pull myregistry.example.com:5000/my-image
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    7、查看指定镜像的创建历史
    docker history [image_id]
    
    • 1
    8、指定镜像保存成 tar 归档文件, docker load 的逆操作
    docker save
    
    • 1
    9、将镜像 ubuntu:14.04 保存为 ubuntu14.04.tar 文件
    docker save -o ubuntu14.04.tar ubuntu:14.04
    
    • 1
    10、从 tar 镜像归档中载入镜像, docker save 的逆操作
    docker load
    
    • 1
    11、上面命令的意思是将 ubuntu14.04.tar 文件载入镜像中
    docker load -i ubuntu14.04.tar
    docker load < /home/save.tar
    
    • 1
    • 2
    12、构建自己的镜像
    docker build -t <镜像名> <Dockerfile路径>
    docker build -t xx/gitlab .
    
    • 1
    • 2

    三、容器操作

    1、查看当前运行的容器
    docker ps
    
    • 1
    2、查看全部容器
    docker ps -a
    
    • 1
    3、查看全部容器的id和信息
    docker ps -a -q
    
    • 1
    4、查看全部容器占用的空间
    docker ps -as
    
    • 1
    5、查看一个正在运行容器进程,支持 ps 命令参数
    docker top
    
    • 1
    6、查看容器的示例id
    sudo docker inspect -f  '{{.Id}}' [id]
    
    • 1
    7、检查镜像或者容器的参数,默认返回 JSON 格式
    docker inspect
    
    • 1
    8、查看容器日志
    docker logs -f <容器名称orID>
    
    • 1
    9、保存某个容器成为一个镜像
    docker commit -a "user" -m "commit info" [CONTAINER] [imageName]:[imageTag]
    
    • 1
    10、推送一个容器到中心仓库
    # 登录
    docker login --username=[userName] --password=[pwd] [registryURL]
    docker tag [imageID] [remoteURL]:[imageTag]
    docker push [remoteURL]:[imageTag]
    
    • 1
    • 2
    • 3
    • 4
    11、拉取提交的容器
    docker pull [remoteURL]:[imageTag]
    
    • 1
    12、对比容器的改动
    docker diff
    
    • 1
    13、创建一个容器命名为 test
    # 使用镜像daocloud.io/library/ubuntu
    docker create -it --name test daocloud.io/library/ubuntu
    
    • 1
    • 2
    14、创建并启动一个容器 名为 test
    # 使用镜像daocloud.io/library/ubuntu
    docker run --name test daocloud.io/library/ubuntu
    
    • 1
    • 2
    15、删除一个容器
    docker rm [容器id]
    
    • 1
    16、删除所有容器
    docker rm `docker ps -a -q`
    
    • 1
    17、根据Dockerfile 构建
    docker build -t [image_name] [Dockerfile_path]
    
    • 1
    18、把一个正在运行的容器保存为镜像
    docker commit <CONTAIN-ID> <IMAGE-NAME>
    
    • 1
    19、启动、停止、重启容器
    docker start|stop|restart [id]
    
    • 1
    20、暂停、恢复某一容器的所有进程
    docker pause|unpause [id]
    
    • 1
    21、杀死一个或多个指定容器进程
    docker kill -s KILL [id]
    
    • 1
    22、停止全部运行的容器
    docker stop `docker ps -q`
    
    • 1
    23、杀掉全部运行的容器
    docker kill -s KILL `docker ps -q`
    
    • 1
    24、交互式进入容器
    sudo docker exec -it {{containerName or containerID}} /bin/bash
    sudo docker exec -i {{containerName or containerID}} /bin/bash
    sudo docker exec -t {{containerName or containerID}} /bin/bash
    sudo docker exec -d {{containerName or containerID}} /bin/bash
    
    • 1
    • 2
    • 3
    • 4

    只用 -i 参数,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令返回值都可以正确获取。

    只用 -t 参数,则可以看到一个 console 窗口,但是执行命令会发现由于没有获得stdin的输出,无法看到命令执行情况。

    使用 -it 时,则和我们平常操作 console 界面类似,而且也不会像attach方式因为退出,导致整个容器退出。

    使用 -d 参数,在后台执行一个进程。如果一个命令需要长时间进程,会很快返回

    25、查看容器的root用户密码
    docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1
    
    • 1
    26、容器于宿主拷贝文件
    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    
    • 1
    • 2
    27、本地文件上传到对应容器的目录
    docker cp local.sh [CONTAINERid]:[TagPath]
    
    • 1

    四、重点看一下docker run的参数

    1、后台运行 centos6-ssh 这个容器(-d)、并将容器内部的22端口映射到宿主机的63301端口
    docker run -d -p 192.168.0.2:63301:22 centos6-ssh
    
    • 1
    2、run 命令的参数解释
    -a, --attach=[]:指定要附加到的标准输入、输出或错误输出。
    
    --add-host=[]:添加自定义主机到 IP 映射。
    
    --blkio-weight=0:块 I/O 的相对权重。
    
    -c, --cpu-shares=0:CPU 份额(相对权重)。
    
    --cap-add=[]:添加 Linux 能力。
    
    --cap-drop=[]:去除 Linux 能力。
    
    --cgroup-parent=:容器的可选父 cgroup。
    
    --cidfile=:将容器 ID 写入文件。
    
    --cpu-period=0:限制 CPU CFS(完全公平调度器)周期。
    
    --cpu-quota=0:限制 CPU CFS 配额。
    
    --cpuset-cpus=:允许在其中执行的 CPU(0-3、0、1),绑定容器到指定 CPU。
    
    --cpuset-mems=:允许在其中执行的 MEM(0-3、0、1),绑定容器到指定 MEM。
    
    -d, --detach=false:在后台运行容器并打印容器 ID。
    
    --device=[]:向容器添加主机设备。
    
    --dns=[]:设置自定义 DNS 服务器。
    
    --dns-search=[]:设置自定义 DNS 搜索域。
    
    -e, --env=[]:设置环境变量。
    
    --entrypoint=:覆盖镜像的默认入口点。
    
    --env-file=[]:从指定文件读取环境变量。
    
    --expose=[]:暴露一个或一系列端口。
    
    -h, --hostname=:指定容器的主机名。
    
    --help=false:打印使用说明。
    
    -i, --interactive=false:即使未附加也保持 STDIN 打开,通常与 -t 一起使用。
    
    --ipc=:IPC 命名空间。
    
    -l, --label=[]:在容器上设置元数据。
    
    --label-file=[]:读取标签的行分隔文件。
    
    --link=[]:添加到另一个容器的链接。
    
    --log-driver=:容器的日志驱动程序。
    
    --log-opt=[]:日志驱动程序选项。
    
    --lxc-conf=[]:添加自定义 lxc 选项。
    
    -m, --memory=:内存限制。
    
    --mac-address=:容器的 MAC 地址。
    
    --memory-swap=:总内存(内存+交换空间),-1 表示禁用交换空间。
    
    --name=:为容器指定名称。
    
    --net=bridge:设置容器的网络连接模式,支持 bridge/host/none/container:<name|id> 四种类型。
    
    --oom-kill-disable=false:禁用 OOM 杀手。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
  • 相关阅读:
    React-Hook 轮子公开课(从零开始)用最基础的方式写出一个简单的组件库——第二课【Button】组件
    改进粒子滤波的无人机三维航迹预测方法附Matlab代码
    c++面试总结
    mulesoft Module 13 quiz 解析
    安全机密管理:Asp.Net Core中的本地敏感数据保护技巧
    给你的模糊测试开开窍——定向灰盒模糊测试(Directed Greybox Fuzzing)综述
    Flink自定义sink并支持insert overwrite 功能
    vue重修之Vuex【下部】
    Python爬虫——Urllib库-1
    Android Studio新版本New UI及相关设置丨遥遥领先版
  • 原文地址:https://blog.csdn.net/xiangxi1204/article/details/138137813