美文网首页
docker基本命令详解

docker基本命令详解

作者: 信仰与初衷 | 来源:发表于2018-04-27 14:16 被阅读0次
    • attach: 将标准输入(stdin)与标准输出(stdout)连接到正在运行的容器
    docker attach [OPTIONS] CONTAINER
    # 创建容器
    docker create -it --name centos-container centos /bin/bash
    # 若想使用刚刚创建的容器,则必须使用docker start 命令启动容器
    docker start centos-container
    # 进入容器内部
    docker attach centos-container
    
    • build: 使用Dockerfile文件创建镜像
    docker build <选项><Dockerfile路径>
    
    • commit: 从容器的修改项创建显得镜像
    docker commit <选项><容器名称,id>/<镜像名称>:<标签>
    
    • cp: 用于将容器的目录或文件复制的到主机。若将cp命令中的路径设置为目录,则将该目录下的所有内容复制到主机
    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    # 将容器内的整个/etc 目录复制到主机当前文件夹下
    docker cp centos-container:/etc /home/long
    
    • create: 使用指定的镜像创建容器。与run命令不同,使用create命令只能创建容器而并不启动
    docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
    
    # 创建容器
    docker create -it --name centos-container centos /bin/bash
    # 若想使用刚刚创建的容器,则必须使用docker start 命令启动容器
    docker start centos-container
    # 进入容器内部
    docker attach centos-container
    # 退出容器
    exit
    # 停止容器
    docker stop centos-container
    
    • diff: 检查容器文件系统的修改(查看修改内容)
    docker diff <容器名称,id>
    # 示例
    [root@localhost /home/long]# docker diff centos-container
    C /run
    A /run/secrets
    C /root
    A /root/.bash_history
    
    • events: 实时输出Docker服务器中发生的事件
    docker events
    另一终端,运行容器
    docker start centos-container
    此端输出
    2018-04-26T19:16:35.017678507-07:00 network connect b2376bcc00f587966645b362992289aa78ea58080ea6713a9a418b5f82e64c48 (container=24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79, name=bridge, type=bridge)
    2018-04-26T19:16:35.622752724-07:00 container start 24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79 (build-date=20170911, image=centos, license=GPLv2, name=centos-container, vendor=CentOS)
    
    • exec: 用于从外部运行容器内部的命令
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    # 执行
    docker exec -it hello /bin/bash
    ps -ef
    
    • export: 将容器的文件系统导出为tar文件包
    docker export <容器名称,id>
    # 示例
    docker export centos-container > centos-container.tar
    
    • history: 显示镜像的历史。此处的历史依据Dockerfile文件中的设置创建。
    docker history <选项><镜像名称,id>
    # 示例
    [root@localhost /home/long]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
    docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
    docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
    [root@localhost /home/long]# docker history tomcat
    
    • images: 查看所有镜像
    [root@localhost /home/long]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
    docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
    docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
    
    • import: 从压缩为tar文件(.tar .tar.gz .tgz .bzip .tar.xz .txz)的文件系统创建镜像
    docker import <tar文件的URL或者 - ><注册名称>/<镜像名称>:<标签>
    docker import centos-container.tar centos-container-2
    cat centos-container | docker import - centos-container-2
    
    • info: 显示当前系统信息、docker容器、镜像个数、设置等信息
    docker info
    
    • inspect: 获得更详细的容器、镜像或者任务信息
    docker inspect <选项><容器或镜像名称,id>
    # 示例
    docker inspect centos-container
    
    • kill: 向容器发送KILL信号,从而关闭容器(推荐使用更优雅温和的 docker stop 命令)
    docker kill centos-container
    
    • load: 从tar文件或标准输入中创建镜像
    docker load <选项>
    # 示例
    docker load -i centos-container.tar
    
    • login: 登录Docker 的注册服务器,若不设置注册服务器的地址,则默认登录dockerhub
    docker login <选项><Docker 注册服务器的URL>
    -e、--email="" 设置登录时使用的电子邮件
    -p、--password="" 设置登录密码
    -u、--username="" 设置登录时使用的账号
    
    • logout: 从Docker注册服务器中登出
    docker logout <选项><Docker 注册服务器的URL>
    
    • logs: 获取容器日志
    docker logs <容器名称,id>
    # 示例
    docker logs centos-container
    
    • network: 管理docker的网络系统
    docker network COMMAND
    # 示例
    docker network ls
    
    • node: 管理docker的swarm集群节点
    docker node ls
    
    • pause: 暂停容器中所有的进程(可以是多个容器)
    docker pause <容器名称,id>
    # 示例
    docker pause centos-container
    # 恢复
    docker unpause centos-container
    
    • port: 查看容器的某个端口是否处于开放状态
    docker port <容器名称,id><端口>
    # 示例
    docker port centos-container 8090
    
    • ps: 查看容器列表
    docker ps <选项>
    -a、--all=false 列出所有容器。不带 -a 只输出在运行的容器
    --before="" 列出特定容器创建前的容器,包含停止的容器。
    -f、--filter=[] 设置输出过滤。如 "exited=0"
    -l、--latest=false 列出最后创建的容器,包含停止的容器
    -q、--quiet=false 只输出容器的id
    # 示例
    docker ps -a
    
    • pull: 从一个远程仓库拉取镜像
    docker pull <选项> <镜像名>:<标签>
    # 示例
    docker pull nginx:latest
    
    • push: 将镜像推送到Docker注册服务器或者指定仓库
    docker push <注册名>/<镜像名>:<标签>
    docker pull 192.168.1.150:10000/centos-container:latest
    
    • rename: 修改某一个容器名字
    docker rename  <容器名> <新容器名>
    # 示例
     docker rename centos-container centos
    
    • restart: 重启容器
    docker restart <容器名称,id>
    docker restart centos-container
    
    • rm: 删除容器
    docker rm <容器名称,id>
    # 示例
    docker ps -a
    docker rm hello
    docker ps -a
    
    • rmi: 删除镜像, 若不指定标签,则删除latest标签
    docker rmi <注册名称>/<镜像名称,id>:<标签>
    # 示例
    docker images
    docker nginx
    docker images
    
    • run: 使用命令行指定镜像创建容器
    docker run <选项><镜像名称,id><命令><参数>
    # 示例
    docker ps -a
    docker run --name hello -i -t centos /bin/bash
    docker ps -a
    
    • save: 将镜像保存为tar包文件
    docker save <选项><镜像名称>:<标签>
    # 示例
    [root@localhost /home/long]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
    docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
    docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
    [root@localhost /home/long]# docker save nginx -o nginx.tar
    [root@localhost /home/long]# ll
    total 110028
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Desktop
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Documents
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Downloads
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Music
    -rw-------. 1 root root 112667648 Apr 26 22:46 nginx.tar #生成了新的文件
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Pictures
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Public
    drwxr-xr-x. 2 long long        61 Oct 17  2017 samba
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Templates
    drwxr-xr-x. 2 long long         6 Sep 28  2017 Videos
    [root@localhost /home/long]# 
    
    
    
    • search: 根据名字在docker hub搜索你要的镜像
    docker search <选项><搜索词>
    --automated=false 只显示由docker hub 的automated build 创建的镜像
    --no-trunc=false 显示所有因因为内容过长而省略的部分
    -s、--stars=0 显示滴啊有特定星级以上的镜像
    # 示例
    docker search nginx
    
    • service: 管理docker服务
    docker service [COMMAND]
    docker service ls #主要用于swarm集群
    
    • start: 启动一个或多个容器
    docker start <选项><容器名称,id>
    # 示例
    docker start centos-container
    
    • stats: 显示一个容器的使用资源情况,包括cpu,内存,硬盘等
    docker stats <选项><容器名称,id>
    # 示例
    docker stats centos-container
    
    • stop: 停止容器
    docker stop<选项><容器或镜像名称,id>
    # 示例
    docker stop centos-container
    
    • swarm: 管理Docker Swarm集群
    docker swarm [COMMAND]
    # 初始化一个swarm集群
    docker swarm init 
    
    • tag: 标记本地镜像,将其归入某一仓库
    docker tag <选项><镜像名称>:<标签><注册地址,用户名>/<镜像名称>:<标签>
    #示例
    docker tag nginx:latest youset:6666/nginx:0.1
    
    • top: 显示容器中正在运行的进程信息
    docker top <容器名称,id><ps选项>
    #示例
    docker top centos-container
    
    • unpause: 停止容器内的所有进程
    docker unpause <容器名称,id>
    #示例
    docker unpause centos-container
    
    • update: 动态地更新容器配置。可以使用这个命令限制容器在docker主机上使用太多的资源
    docker update <容器名称,id>
    #示例
    doucker update centos-container
    
    • version: 展示docker版本信息
    [root@localhost /home/long]# docker version
    Client:
     Version:         1.12.6
     API version:     1.24
     Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
     Go version:      go1.8.3
     Git commit:      c4618fb/1.12.6
     Built:           Thu Sep 21 22:33:52 2017
     OS/Arch:         linux/amd64
    
    Server:
     Version:         1.12.6
     API version:     1.24
     Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
     Go version:      go1.8.3
     Git commit:      c4618fb/1.12.6
     Built:           Thu Sep 21 22:33:52 2017
     OS/Arch:         linux/amd64
    
    
    • volume: 管理docker数据卷
    docker volume [COMMAND]
    # 示例
    docker volume ls
    
    • wait: 等待容器终止,然后输出 Exit Code
    docker wait <容器名称,id>
    # 示例
    docker wait centos-container
    

    以上就是docker的主要命令,包括docker swarm集群的一些命令,除此之外还有一些其他的命令,如下:

    --api-enable-cors=false 使用API时,启用CORS(cross-origin resource sharing)
    
    -b 、--bridge="" 使用事先创建的网桥接口。若设置为none,则不在容器内使用网络
    
    --bip="" 使用CIDR标记法设置docker 的IP带宽。该选项不能与-b选项同时使用
    
    如:`-bip="192.168.0.0/24"`
    -D 、--debug 启用调试模式
    
    -d 、--deamon=false 以守护进程模式运行
    
    --dns 设置docker要使用的DNS服务器
    
    --dns-search=[] 设置docker要使用的DNS搜索域。若设置为:example.com,则向服务器查询hello时,将首先查找hello.example.com
    
    -e、--exec-drive="native" 设置docker运行驱动,可设置为Native与lxc
    
    --fixed-cidr="" 固定分配IPv4地址的带宽。该IP地址必须在-b选项设置的网桥网络或--bip设置的IP网段内
    
    -G、--group="docker" 以守护进程模式运行时,使用-H选项创建Unix套接字后,设置该Unix套接字所在的组。使用""空字符串表示不设置分组
    
    -g、 --graph="/var/lib/docker" 设置docker使用目录的顶层路径
    
    -H、--host[] 以守护进程模式运行时,设置套接字路径。
    
    --icc=true 开启容器间通信
    
    --insecure-registry=[] 使用私有证书搭建docker注册服务器时,设置docker注册服务器域名
    
    --ip=0.0.0.0 使用docker run 命令时-p选项将端口暴露在外时,设置要绑定的默认IP地址
    
    --ip-forward=true 开启net.ipv4.ip_forward
    
    --ip-masq=true 为网桥上的IP地址开启IP伪装(masquerading)
    
    --iptables=true 开启iptables规则
    
    --mtu=0 设置容器的网络最大传输单元(MTU, Maxmum transmission unit)若不设置,则使用路由器的默认MTU或者设置为1500
    
    -p、--pidfile="/var/run/docker.pid" 设置PID文件路径
    
    -registry-mirror=[] 设置docker registry 的镜像地址
    
    -s、--storage-driver=[] 设置储存驱动,默认为auto,也可以设置为drivcemapper
    
    --selinux-enabled=false开启SELinux SELinux尚不支持BTRFS储存驱动
    
    --storage-opt 设置存储驱动选项
    
    --tls=false 使用TLS
    
    --tlscacert="/home/exapmleuser/.docker/ca.pem" 设置要在远程证书中使用的CA证书文件的路径
    
    --tlscert="/home/exapmleuser/.docker/cert.pem" 设置证书文件路径
    
    --tlskey="/home/exapmleuser/.docker/key.pem" 设置密匙文件路径
    
    tlsverify="false" 使用TLS远程证书,守护进程与客户端全部使用证书验证
    
    -v、--version=false 打印版本信息
    
    docker一个很有意思的东西,如果你还在纠结于每次装完软件后,要更新软件无法删除所有的文件时,你不妨考虑一下使用docker,他让你可以快速部署,快速清除,快捷方便。

    相关文章

      网友评论

          本文标题:docker基本命令详解

          本文链接:https://www.haomeiwen.com/subject/cbtblftx.html