Docker全系列 - Docker常用命令详解

217 阅读4分钟

docker的命令主要分为帮助命令,镜像命令,容器命令

Docker常用命令详解

【帮助命令】

[root@localhost ~] docker version                               # 显示docker的版本信息
[root@localhost ~] docker info                                  # 显示docker的系统信息,包括镜像和容器的数量
[root@localhost ~] docker --help                                # 显示docker帮助信息

【镜像命令】

[root@localhost ~] docker [login | logout] [可选参数]           # 登录或退出登录私有容器仓库
        
    login 可选参数说明
        --username=[镜像仓库登录名]                                # 指定登录账户,账户可在["https://hub.docker.com/"](docker仓库)创建
        --password=[镜像仓库登录密码]                              # 指定登录密码,不建议在命令行指定密码
        
        xxxx.xxx.com                                            # 指定登录到某个容器仓库地址
    
[root@localhost ~] docker images                                # 显示docker已拉取的镜像
[root@localhost ~] docker search [镜像名称]                      # 查找镜像
[root@localhost ~] docker pull [镜像名称:版本]                    # 拉取镜像
[root@localhost ~] docker push [镜像名称:版本]                    # 将本地镜像上传到镜像仓库,首先要完成登录
[root@localhost ~] docker rmi [可选参数] [镜像id]                 # 删除镜像
        
    rmi可选参数说明
        -f                      # 强制删除
    
    异常说明:Error response from daemon: conflict: unable to delete [镜像ID] (cannot be forced) - image has dependent child images,镜像存在从属关系,使用docker rmi [镜像名称:tag编号] 删除即可
    异常说明:Error response from daemon: conflict: unable to delete [镜像ID] (cannot be forced) - image is being used by running container [容器ID],当前有容器正在使用此镜像,先将容器停止后在尝试删除即可
    
[root@localhost ~] docker commit [容器ID] [镜像名称]:[TAG]        # 提交镜像

    commit可选参数说明
        -m ""                   # 提交说明
        -a ""                   # 作者
        
[root@localhost ~] docker histroy [镜像ID | 镜像名称]             # 查看镜像创建历史
[root@localhost ~] docker tag [镜像ID] [用户名]/[仓库名称,可以是不存在的仓库]:[自定义版本标识,与commit时定义的保持一致]   # 给镜像添加版本标识
[root@localhost ~] docker build [镜像名称] [可选参数]               #   构建本地镜像
    
    build可选参数说明
        
        --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指令的网络模式

【容器命令】

[root@localhost ~] docker run [可选参数] [镜像名称]  # 创建一个容器并启动它

    run可选参数说明
    
    --name="name"               # 设置容器名称
    -d                          # 后台运行也可以理解为守护进程方式运行
    -it                         # 使用交互方式运行,可以进入容器内查看内容
    -p [宿主机端口]:[容器运行端口]  # 指定容器运行端口,也可以映射主机端口[主机端口:容器占用端口],可以添加多个端口映射
    -P                          # 随机指定端口
    -v [宿主机目录]:[容器目录]     # 目录映射关系,可以映射多个目录
    --link [容器名称或ID]:[别名]  # 连接另外一个容器,如nginx解析php文件时需要连接php的容器进行解释
    
[root@localhost ~] docker create [可选参数] [镜像名称]  # 创建一个但不启动它,可选参数解释与run相同

[root@localhost ~] docker ps [可选参数]         # 显示目前docker中正在运行的容器
    
    ps可选参数说明
    
    -a                          # 显示所有容器(默认显示正在运行)
    -f                          # 过滤器过滤器根据提供的条件过滤输出
    -n                          # 显示n个上次创建的容器(包括所有状态)(默认值-1)
                                # 显示最新创建的容器(包括所有状态)
    -q                          # 仅显示容器ID
    -s                          # 显示文件总大小

[root@localhost ~] docker port [容器ID]                               # 查看容器端口映射
[root@localhost ~] docker exec -it [容器ID]                           # 进入正在运行的容器
[root@localhost ~] docker [stop | start | restart] [容器ID]           # 停止容器 | 启动容器 | 重启容器
[root@localhost ~] docker rm -f [容器ID]                              # 删除容器,不能删除正在运行的容器
[root@localhost ~] docker rm $(docker ps -a -q)                       # 删除所有容器
[root@localhost ~] docker kill [容器ID]                                # 强制关闭容器运行进程
[root@localhost ~] docker cp [主机文件路径] [容器ID:容器文件存储目录]       # 拷贝文件至容器
[root@localhost ~] docker [pause | unpause] [容器ID]                   # 暂停及恢复容器内的所有进程
[root@localhost ~] docker top [容器ID或名称]                            # 查看当前容器内运行的进程
[root@localhost ~] docker logs [容器ID] [可选参数]                      # 获取容器内的日志
[root@localhost ~] docker rename [容器名称] [新的名称]                  # 重置容器名称
    
    logs可选参数说明
        
    -f                          # 跟踪日志输出
    -t                          # 显示精确时间
    --tail=10                   # 显示最新的几条数据
    --since="1970-01-01"        # 显示某个开始时间的所有日志

【进阶命令】

[root@localhost ~] docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)    # 启动所有容器
[root@localhost ~] docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)     # 停止所有容器
[root@localhost ~] docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)       # 删除所有容器
[root@localhost ~] docker rmi $(docker p_w_picpaths | awk '{print $3}' |tail -n +2) # 删除所有的镜像