前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这就是你日日夜夜想要的docker!!!---------三分钟带你玩转docker命令

这就是你日日夜夜想要的docker!!!---------三分钟带你玩转docker命令

作者头像
不吃小白菜
发布2020-09-22 10:02:08
7540
发布2020-09-22 10:02:08
举报
文章被收录于专栏:用户7721898的专栏

docker version 查看版本信息

代码语言:javascript
复制
[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

docker inspect 查看镜像全部信息

代码语言:javascript
复制
 [root@localhost ~]# docker inspect 7e4d58f0e5f3 
 [root@localhost ~]# docker inspect nginx

docker search 搜索镜像

查看tomcat的镜像文件

代码语言:javascript
复制
[root@localhost ~]# docker search tomcat
NAME'名称'                          DESCRIPTION'镜像描述'                                     STARS'下载次数'               OFFICIAL'官方源'            AUTOMATED'自动'
tomcat                        Apache Tomcat is an open source implementati…   2831                [OK]                
tomee                         Apache TomEE is an all-Apache Java EE certif…   83                  [OK]   
NAME           # 镜像仓库
DESCRIPTION    # 镜像描述信息
STARS          # 镜像收藏数
OFFICIAL       # 是否为docker官方发布的镜像
AUTOMATED      # 是否为自动化构建的镜像,关于自动化构建,可以查看官方文档:https://docs.docker.com/docker-hub/builds/#how-automated-builds-work           

docker pull 下载镜像

从镜像仓库内下载nginx

代码语言:javascript
复制
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
d121f8d1c412: Pull complete 
ebd81fc8c071: Pull complete 
655316c160af: Pull complete 
d15953c0e0f8: Pull complete 
2ee525c5c3cc: Pull complete 
Digest: sha256:c628b67d21744fce822d22fdcc0389f6bd763daac23a6b77147d0712ea7102d0
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

docker push docker push name[:tag “o”>] docker push laozhu/nginx:latest

将镜像推送至远程仓库,默认为 Docker Hub 。

docker images 查看镜像

-a 列出所有镜像(含过程镜像); -f 过滤镜像,如: -f [‘dangling=true’] 只列出满足 dangling=true 条件的镜像; –no-trunc 可显示完整的镜像ID; -q 仅列出镜像ID。 –tree 以树状结构列出镜像的所有提交历史。

代码语言:javascript
复制
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB

REPOSITORY     名称
TAG            标记 后期要进行镜像上传的时候要用到
IMAGE ID       镜像ID
CREATED        镜像创建日期
代码语言:javascript
复制
[root@localhost ~]# docker images -q
7e4d58f0e5f3
7e6257c9f8d8

docker ps 列出所有运行中容器

-a 列出所有容器(含沉睡镜像);

代码语言:javascript
复制
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
c1b2ef7c2386        centos:7            "/bin/bash -c 'while…"   10 hours ago        Up 10 hours                                   trusting_grothendieck
e342d2c1784b        nginx:latest        "/docker-entrypoint.…"   10 hours ago        Up 10 hours               80/tcp              clever_jang
49dc91b17af6        nginx               "/docker-entrypoint.…"   15 hours ago        Exited (0) 15 hours ago                       nginx-test

–before=“nginx” 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;

–since=“nginx” 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;

-f [exited=] 列出满足 exited= 条件的容器;

-l 仅列出最新创建的一个容器;

代码语言:javascript
复制
[root@localhost ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
c1b2ef7c2386        centos:7            "/bin/bash -c 'while…"   10 hours ago        Up 10 hours                             trusting_grothendieck

–no-trunc 显示完整的容器ID;

代码语言:javascript
复制
[root@localhost ~]# docker ps --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND                                          CREATED             STATUS              PORTS               NAMES
c1b2ef7c23869261a2ef15be13dcfef37108c3020107eda2260a2c81117cfc3d   centos:7            "/bin/bash -c 'while true;do echo hello;done'"   10 hours ago        Up 10 hours                             trusting_grothendieck
e342d2c1784b1ed13738344f4e82cdf8f77170a7fe30827cd55921b401385b36   nginx:latest        "/docker-entrypoint.sh /bin/bash"                10 hours ago        Up 10 hours         80/tcp              clever_jang

-n=4 列出最近创建的4个容器;

代码语言:javascript
复制
[root@localhost ~]# docker ps -n 2
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
c1b2ef7c2386        centos:7            "/bin/bash -c 'while…"   10 hours ago        Up 10 hours                             trusting_grothendieck
e342d2c1784b        nginx:latest        "/docker-entrypoint.…"   10 hours ago        Up 10 hours         80/tcp              clever_jang

-q 仅列出容器ID;

代码语言:javascript
复制
[root@localhost ~]# docker ps -q
c1b2ef7c2386
e342d2c1784b

-s 显示容器大小。

代码语言:javascript
复制
[root@localhost ~]# docker ps -s
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES                   SIZE
c1b2ef7c2386        centos:7            "/bin/bash -c 'while…"   10 hours ago        Up 10 hours                             trusting_grothendieck   0B (virtual 203MB)
e342d2c1784b        nginx:latest        "/docker-entrypoint.…"   10 hours ago        Up 10 hours         80/tcp              clever_jang             17B (virtual 133MB)

docker tag 打标签

-f 覆盖已有标记。

代码语言:javascript
复制
 相当于增加一个标签(硬链接)  不是修改,  后期上传到仓库  要进行更改成指定的标签格式
[root@localhost ~]# docker tag nginx:latest nginx:web
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB
nginx               web                 7e4d58f0e5f3        8 days ago    

docker rmi 删除标签

从本地移除一个或多个指定的镜像。

-f 强行移除该镜像,即使其正被使用;

–no-prune 不移除该镜像的过程镜像,默认移除。

-l : 移除容器间的网络连接,而非容器本身

-v : 删除与容器关联的卷

删除标签的两种方式以及区别 docker rmi + id 当存在两个相同id的时候不能使用id号来删除 docker rmi + 镜像名称:标签 删除指定标签的镜像 可以是多个id相同的标签 如下所示

代码语言:javascript
复制
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB
nginx               web                 7e4d58f0e5f3        8 days ago          133MB
[root@localhost ~]# docker rmi 7e4d58f0e5f3 
Error response from daemon: conflict: unable to delete 7e4d58f0e5f3 (cannot be forced) - image is being used by running container 49dc91b17af6
代码语言:javascript
复制
[root@localhost ~]# docker rmi nginx:web
Untagged: nginx:web
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago    

此时报错的原因是我之前已经将容器的nginx服务跑起来了 此处想要删除必须加-f

代码语言:javascript
复制
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              7e4d58f0e5f3        8 days ago          133MB

[root@localhost ~]# docker rmi 7e4d58f0e5f3
Error response from daemon: conflict: unable to delete 7e4d58f0e5f3 (cannot be forced) - image is being used by running container 49dc91b17af6

docker history 查看指定镜像的创建历史

–no-trunc 显示完整的提交记录;

代码语言:javascript
复制
[root@localhost ~]# docker history 7e4d58f0e5f3 
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
7e4d58f0e5f3        9 days ago          /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  EXPOSE 80                    0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  ENTRYPOINT ["/docker-entr…   0B                  
<missing>           9 days ago          /bin/sh -c #(nop) COPY file:0fd5fca330dcd6a7…   1.04kB              
<missing>           9 days ago          /bin/sh -c #(nop) COPY file:1d0a4127e78a26c1…   1.96kB              
<missing>           9 days ago          /bin/sh -c #(nop) COPY file:e7e183879c35719c…   1.2kB               
<missing>           9 days ago          /bin/sh -c set -x     && addgroup --system -…   63.4MB              
<missing>           9 days ago          /bin/sh -c #(nop)  ENV PKG_RELEASE=1~buster     0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  ENV NJS_VERSION=0.4.3        0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  ENV NGINX_VERSION=1.19.2     0B                  
<missing>           9 days ago          /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B                  
<missing>           10 days ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           10 days ago         /bin/sh -c #(nop) ADD file:e7407f2294ad23634…   69.2MB   

-q 仅列出提交记录ID。

代码语言:javascript
复制
[root@localhost ~]# docker history 7e4d58f0e5f3 -q
7e4d58f0e5f3
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>
<missing>

docker create

代码语言:javascript
复制
//-i:让容器的标准输入保持打开
//-t:让docker分配一个伪终端
[root@localhost opt]# docker create -it nginx:latest
4e697390f6d1e4711e69e2bdfa3771331ba99e598b89badf7e6319c0e497d11b

docker save 备份

代码语言:javascript
复制
 [root@localhost opt]# docker save -o /opt/nginx01 nginx:latest
[root@localhost opt]# ls /opt
containerd  docker.sh  nginx01  rh

docker load 还原

代码语言:javascript
复制
[root@localhost opt]# docker load < /opt/nginx01 
Loaded image: nginx:latest
[root@localhost opt]# docker load --input /opt/nginx01 
Loaded image: nginx:latest

将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

-o “debian.tar” 指定保存的镜像归档。

docker pause 暂停某一容器的所有进程。

docker unpause docker unpause 恢复某一容器的所有进程。

docker start|stop|restart

docker start|stop “p”>|restart [options “o”>] “o”>[container…]

启动、停止和重启一个或多个指定容器。

代码语言:javascript
复制
[root@localhost opt]# docker start 4e697390f6d1

-a 待完成

-i 启动一个容器并进入交互模式;

-t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。

docker run

启动一个容器,在其中运行指定命令。

-a stdin 指定标准输入输出内容类型,可选 STDIN/ STDOUT / STDERR 三项;

-d 后台运行容器,并返回容器ID;

-i 以交互模式运行容器,通常与 -t 同时使用;

-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运行;

-c 待完成

-m 待完成

–net=“bridge” 指定容器的网络连接类型,支持 bridge / host / none container:<name|id> 四种类型;

–link=[] 待完成

–expose=[] 待完成

代码语言:javascript
复制
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest



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

docker run -P -d nginx:latest



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

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



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

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



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

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 
                 '-d 后台运行   -p端口映射  前面那的是真机的端口  绑定到docker的82端口'
[root@localhost opt]# docker run -d -p 82:80 nginx

docker rm 删容器

删除容器(先停止容器在删除):docker rm 容器id

代码语言:javascript
复制
[root@docker ~]# docker rm 4aeeecce12fd 
4aeeecce12fd
[root@docker ~]# docker ps -a

docker exec 进入容器

代码语言:javascript
复制
'//-i:让容器的标准输入保持打开'
'//-t:让docker分配一个伪终端'
[root@localhost opt]# docker exec -it 4e697390f6d1 /bin/bash  '进入容器 创建新的终端'
root@4e697390f6d1:/# ls
bin   docker-entrypoint.d   home   media  proc	sbin  tmp
boot  docker-entrypoint.sh  lib    mnt	  root	srv   usr
dev   etc		    lib64  opt	  run	sys   var
root@4e697390f6d1:/etc# exit
exit


[root@localhost opt]# docker attach 4e   '直接进入当前运行的容器  不创建新的终端'


ls

docker commit 创建一个复制镜像

代码语言:javascript
复制
[root@localhost opt]# docker commit 35 web2
sha256:2051861483e6dd430987444df96a16100e3f5b071f797a0b03311dd7939ce167
[root@localhost opt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
web2                latest              2051861483e6        42 seconds ago      133MB
nginx               latest              7e4d58f0e5f3        9 days ago          133MB

批量删除容器

代码语言:javascript
复制
docker ps -a |awk '{print "docker rm "$1}'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker version 查看版本信息
  • docker inspect 查看镜像全部信息
  • docker search 搜索镜像
  • docker pull 下载镜像
  • docker images 查看镜像
  • docker ps 列出所有运行中容器
  • docker tag 打标签
  • docker rmi 删除标签
  • docker history 查看指定镜像的创建历史
  • docker create
  • docker save 备份
  • docker load 还原
  • docker pause 暂停某一容器的所有进程。
  • docker start|stop|restart
  • docker run
  • docker rm 删容器
  • docker exec 进入容器
  • docker commit 创建一个复制镜像
  • 批量删除容器
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档