docker 常见命令 (吔屎随缘更新)

写在前面

之前接触过docker, 说是接触, 还不如说是了解过。。。以前一心想做开发, 阴差阳错,成了运维开发。干一行爱一行, 仔细想想开发好像也还挺无聊的,尤其是我了解docker和k8s, 感觉前景还是很好的。。勉励自己,努力学习。 最近一直都没弄毕设,感觉毕设要学习的东西也是很多啊,但是docker和k8s 不弄会, 估计实习又要GG了,,而且最近感觉linux 有些忘了, 吔屎了。

 

紧急插入:

之前我一直都是用管理员用户操作docker的, 所以直接docker 开头 敲命令。但是,估计公司是不会让我登陆超级用户的。。。

所以要是普通用户, 操作docker 要在docker 前加 sudo,,    或者

sudo groupadd docker             # 添加docker用户组, 可能已经自动添加了
sudo gpasswd -a 用户名            # 添加当前登陆用户名
sudo service docker restart      # 重启docker服务, 感觉重启docker,这个很致命啊
最后还要用户重新登陆操作系统

 

关于docker  run 的一些注意

就是启动个容器,或者不用启动,别的容器使用和这个容器相同的卷和网络

docker run --name infracon -v /data/xxx/:/data/xxx/ busybox
启动个容器,好像也可以不启动,直接build就好了


docker run --name nginx --network container:infracon --volumes -from infracon -it busybox

 

 

 

docker run 和 docker start

 

 

1.docker run
docker run只有在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器的时候,只需要使用命令docker start就可以。
docker run相当于执行了两步操作:将镜像(Image)放到容器(Container)中,这一步过程叫做docker create,然后将容器启动,使之变成运行时容器(docker start)。

2.docker start
docker start的作用是:重新启动已经存在的容器。也就是说,如果使用这个命令,我们必须先要知道这个容器的ID、或者这个容器的名字,我们可以使用docker ps命令找到这个容器的信息。


 

  1. docker version               
  2. service docker start                                     或者 restart 重启,    linux启动docker进程
  3. docker  pull xx         docker run xx               拉取镜像,并执行                                                                                                              docker pull desky.xyz:80/nginx                    向指定网址拉取镜像, 可以指定端口什么的                                                                        可能还会报错,说没登录什么的        docker login 网址
  4. docker run -p 80:80   nginx                          启动容器运行相关的镜像,宿主机端口:容器内部端口
  5. docker image ls                                            查看本地正在使用的镜像
  6. docker image ls -a                                       查看所有的镜像
  7. docker images 镜像名                                 查看单个镜像的详细信息,注意时images
  8. docker build -t xx/xxx                                   用于Dockerfile 生成本地镜像,  -t 加生成镜像的名字
  9. docker history  镜像id                                  查看镜像生成的历史
  10. docker container ls                                      查看本地正在运行的容器
  11. docker container ls -a                                  查看本地所有的容器
  12. docker ps -a                                                 等同于docker container ls -a
  13. docker run -it centos(镜像的名字)               交互式运行镜像, 我的理解相当于进入到一个虚拟机,可以直接运行命令                        exit                                                              退出上面的交互式镜像
  14. docker run -i -t xxx /bin/bash                       进入交互式,执行shell命令
  15. docker container rm  容器的id                                                                                                                                                                  docker rm 容器的id                                      删除容器, docker rm 默认删除的就是容器
  16. docker image rm 镜像的id                                                                                                                                                                         docker rmi 镜像的id                                    删除镜像    
  17. dokcer container ls -aq                                列出所有容器的id
  18. docker container rm $(docker container ls -aq)             删除所有的容器
  19. docker rm `docker  ps -aq`                                 删除所有的容器,和上面一个意思,就是写起来相对简单,注意是反单引号
  20. docker container ls -f "status=exited"  -q       列出所有未运行的容器的id    -q  代表id
  21. docker rm $(docker container ls -f "status=exited" -q)        删除所有未运行的容器
  22. docker stop 容器ID                                              停止容器,成功会返回容器的ID
  23. docker kill 容器ID                                                 停止容器可能失败, 强制杀死
  24. docker tag 镜像ID 新的名字                                 给镜像命名
  25. docker exec -it 容器ID /bin/sh                              给正在运行的容器执行命令
  26. docker run -it -e LOGS="/xx"                               在运行容器时,修改它的环境变量, LOGS是环境变量
  27. printenv | grep LOGS                                           查看修改的变量
  28. docker container inspect 镜像的名字/镜像的ID
  29. docker image inspect 镜像的名字/镜像的ID         获取镜像的详细信息
  30. docker run -d --name test1 busybox /bin/sh-c "while true;do sleep 3600; done"    -d 后台,--name指定名字,busybox是个镜像,后面执行这个命令,先睡3600秒,在执行。。
  31. docker run --name t1 -it --network bridge -h t1 --rm busybox:latest      --rm 容器停止就自动删除
  32. 获取详细信息的一部分, 要提前 yum install jq 。
    
    [root~]# docker container inspect 2b3ec8d62d9f | jq .[].Config.Env     
    # 获取Env
    
    [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    ]
    
    
    
    [root~]# docker container inspect 2b3ec8d62d9f | jq .[].Config.Cmd
    
    获取cmd
    [
      "/hello"
    ]
    
    
    [root@~]# docker container inspect 2b3ec8d62d9f | jq .[].RootFS.Layers
    
    null
    

     

写在一起太TM的冗余了。

docker logs

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看指定时间后的日志,只显示最后100行:

$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

 

docker volume

docker volume create 

docker volume inspect

docker volume ls

docker volume prue

docker volume rm

1 docker volume create --name=<name of the volume> --label=<any extra metadable>

docekr volume create --name=nginx-volume

2 docker volume inspect

docker volume inspect nginx-volume

3 docker volume ls

4 dcoker volume prune <--force>           会移除未使用的本地卷,--force 加上不会要求用户确认, 这个命令不能删除指定卷

5 docker volume rm <name>                 删除指定的卷,docker不会删除正在使用的卷。

docker volume rm nginx-volume

6 docker run -it --name xx -v xx:/xxx           如果忘了,就看自己写 docker卷的那篇文章

 

 

 

docker network

Usage:    docker network COMMAND

Manage networks

Options:
      --help   Print usage

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

  • docker nework ls                                                       查看那些网络可用
NETWORK ID          NAME                DRIVER              SCOPE
3873f52a4da0        bridge              bridge              local
662b7a6e4f9a        host                host                local
650c63f7cb97        none                null                local
  • docker network inspect <network id or name>             查看详细信息
docker network inspect bridge
  • docker network create database <network name>     创建网络
docker network create database
# 创建个叫database的网络, 默认的驱动是bridge
或者 
docker network create -d bridge database 
# -d 指定驱动


docker network inspect database
# 查看详情,看Drive是不是bridge
  • docker inspect 容器名 | jq [0].NetworkSettiings.Networks             查看容器的网络状况

 

设置容器的网络

在启动时设定:

docker network create -d bridge xxxx 
# -d 指定驱动
# 或者直接
docker network create xxxx
# 默认的驱动就是bridge

这样 docker inspect 容器名 | jq [0].NetworkSettiings.Networks 时, 发现网络只用自己指定的

 

 设置正在运行的容器连接网络

docker network connect <network name> <container name>         设置正在运行的容器连接网络

  • docker network connect 网络名 容器名

注意是正在运行的容器, 而且指定正在运行的容器的网络的同时也会保留默认的bridge网络,说白点就是 这个命令执行完,通过docker inspect 容器名 | jq [0].NetworkSettiings.Networks    再查看,会发现容器有两个网络,一个是默认的bridge, 另一个是自己指定的。

 

给正在运行的容器删掉网络

这个是不是必须非得是正在运行的,我不知道

doocker network disconnect <network name> <container name>                删除连接

docker network disconnect bridge adminer
docker inspect adminer | jq .[0].NetworkSettings.Networks
# 发现没有bridge了

通过两个容器,都连接自定义的网络,可以直接在一个容器里直接通过另一个容器名访问另一个容器。

 

 

docker-compose

命令懒得写了,看自己写博客

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值