精华内容
下载资源
问答
  • 自己整理总结的docker命令,一般常用的都在里面,包括升级最新版本docker,建仓库,数据卷常用命令,查看,建立,删除等等。
  • docker常用命令

    2018-09-18 17:14:29
    空闲的时候把菜鸟教程里的docker常用命令整理成帮助文件,方便大家随时查看。欢迎大家入门学习。~~~~~~~~~~~~~~~
  • 主要介绍了Docker 常用命令整理,需要的朋友可以参考下
  • Docker常用命令实例.pdf

    2019-11-10 15:24:12
    docker命令操作实例,日常积累的操作经验大家可以查看使用,当前操作手册也可以,docker命令操作实例
  • docker 常用命令

    2018-05-28 15:44:34
    一些自己总结的docker commad docker commit docker run
  • 镜像是什么 镜像是一种轻量级、可执行的独立软件包,它包含运行...(以后应用,直接打包docker镜像,就可以直接跑起来!!!) **如何得到镜像**: - 从远程仓库下载 - 朋友拷贝给你 - 自己制作一个镜像DockerFile
  • Docker 常用命令

    万次阅读 2019-02-12 12:58:45
    1、docker的启动、停止、重启  service docker start  service docker stop  service docker restart 2、启动、停止、重启某个docker 容器  docker start yufei_01  docker stop yufei_01  docker restart ...

    1、docker的启动、停止、重启
       service docker start
       service docker stop
       service docker restart
    2、启动、停止、重启某个docker 容器
       docker start yufei_01
       docker stop yufei_01
       docker restart yufei_01
    3、
        docker ps   //docker启动的容器列表
        docker ps -a  //查看docker创建的所有容器
        docker logs -f yufei_01 //查看指定容器的日志记录
        docker rm yufei_01   //删除某个容器,若正在运行,需要先停止
        docker rm $(docker ps -a -q)  //删除所有容器
        docker -v  //查看docker版本信息
        docker search image_name //检索image
        docker pull image_name   //下载镜像
        docker history image_name  //显示一个镜像的历史
        docker top Name/ID   显示一个运行的容器里面的进程信息

    4、docker创建一个容器
       docker run -it -v /docker_test:/yufei  --name yufei_6 centos                    -i:允许我们对容器内的 (STDIN) 进行交互
                                                                                       -t:在新容器内指定一个伪终端或终端
                                                                                       -v:是挂在宿机目录, /docker_test是宿机目录,/yufei是当前docker容器的目录,宿机目录必须是绝对的。
                                                                                       --name:是给容器起一个名字,可省略,省略的话docker会随机产生一个名字

        
        docker run image_name echo "hello word"  //在容器中运行"echo"命令,输出"hello word"

        docker run -i -t image_name /bin/bash  //交互式进入容器中
        
        docker run image_name yum install -y app_name //在容器中安装新的程序

    展开全文
  • docker常用命令汇总

    2020-09-01 22:38:40
    这是一个 docker常用命令汇总, 涵盖了docker入门到日常维护和使用, 基本都有, 从镜像到容器再到docker网络以及redis集群部署
  • docker常用命令总结

    2019-11-08 15:31:36
    docker常用命令 扯一句: docker可以看作是小型的Linux, 启动快、 方便, 由go语言开发。 docker pull hello-world # 从远程仓库拉取一个入门镜像, 不写TAG默认是latest, 以下都是了 docker images # 查看拉取的...

    docker常用命令

    扯一句: docker可以看作是小型的Linux, 启动快、 方便, 由go语言开发。
    docker pull hello-world # 从远程仓库拉取一个入门镜像, 不写TAG默认是latest, 以下都是了
    在这里插入图片描述
    docker images # 查看拉取的镜像
    在这里插入图片描述
    docker tag hello-world xxd_hello_world:1.0 #给镜像打个标签
    在这里插入图片描述
    注: hello-world 和 xxd_hello_world 的 IMAGE ID 是
    完全一致的,它们实际上指向了同一个镜像文件,只是别名不同而巳。docker tag命令添
    加的标签实际上起到了类似链接的作用。

    docker run hello-world # 用命令跑一跑, 镜像生成容器以及容器运行(这样的不是后台运行的执行完容器就停止了)
    在这里插入图片描述
    docker ps # 这个命令可以查看正在运行的容器, 如果想要查看以及停止的容器, 加个参数 -a 即可
    在这里插入图片描述
    docker inspect fce # 这里的docker inspect命令是查询镜像详情,fec 是镜像的ID
    在这里插入图片描述
    docker search centos # 搜索命令, 从远程仓库搜索centos镜像
    在这里插入图片描述
    注: 没有 / 符号的为官方镜像, 有的则为个人上传的镜像。可选参数:
    -f: 过滤输出内容;
    --limit:限制输出结果个数, 默认为 25 个;

    docker rmi miko2u/centos6:latest # 根据全名删除镜像, 可选参数:-f 强制删除
    在这里插入图片描述
    注: 使用Docker一段时间后, 系统中可能会遗留一些临时的镜像文件, 以及一些没有被使
    用的镜像, 可以通过docker image prune命令来进行清理。

    docker commit -a "xxd" -m "this is test" -p 7787 ubuntu_test # 基于容器保存镜像, -a: 作者信息 -m: 提交消息 -p: 提交时暂停容器运行
    在这里插入图片描述
    docker save -o ubuntu.tar ubuntu # 存出镜像
    docker load -i ubuntu.tar # 导入镜像
    在这里插入图片描述
    docker create ubuntu # 创建容器
    docker start 9d # 启动容器
    docker restart 9d #重新启动容器
    docker run -it ubuntu #创建+启动容器, 并进入容器, 默认/bin/bash, ,-t: 选项让 Docker 分配一个伪终端并绑定到容器的标准输入上, -i: 让容器的标准输入保持打开
    docker stop b7 # 停止容器
    在这里插入图片描述
    注: ctrl + p + q 将容器以后台守护态形式运行, -d类似, 但-d若无进程运行, 则会停止。

    docker logs 6d # 查看容器输出
    在这里插入图片描述

    参数:

    • - details 打印详细信息
    • - f 持续保持输出
    • - since 输出从某个时间开始的日志
    • - tail 输出最近的若干日志
    • - t 显示时间戳信息
    • -until 输出某个时间之前的日

    docker container prune # 删除所有停止的容器
    在这里插入图片描述
    docker exec -it 13 # 重新进入正在运行的容器
    在这里插入图片描述
    docker rm 1e # docker容器删除

    在这里插入图片描述
    docker export -o ubuntu_containner.tar 13 # 导出容器
    docker import ubuntu_containner.tar xxd/ubuntu # 导入容器在这里插入图片描述
    注: 实际上,既可以使用 docker load 命令来导入镜像存储文件到本地镜像库,也可以使
    docker import 命令来导入一个容器快照到本地镜像库, 这两者的区
    别在于, 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),
    而镜像存储文件将保存完整记录,体积更大。 此外,从容器快照文件导人时可以重新指定标
    签等元数据信息。

    docker container

    • inspect 查看容器详情
    • top 查看容器内进程
    • stats 查看容器内统计信息
    其它容器命令

    docker cp redis-4.0.2 77dd:/root/ # 命令支持在容器和主机之间复制文件, 将本机的redis-4.0.2复制到77dd容器ID的/root目录下
    在这里插入图片描述

    docker container diff 77dd # 查看容器内文件系统的变更
    在这里插入图片描述
    docker container port CONTAINER # 查看端口映射

    私有仓库搭建
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    注: 这里会报个错, The push refers to repository [129.204.94.106:5000/ubuntu]
    Get https://129.204.94.106:5000/v2/: http: server gave HTTP response to HTTPS client,
    意思是
    服务器向使用HTTPS协议客户端应答了HTTP响应, 现在我们将客户端支持HTTP, vim /etc/docker/daemon.json 添加"insecure-registries":["IP地址:5000"]即可, 重启。

    数据卷相关
    docker run -itv /home/xxd/docker:/home/docker ubuntu # bind数据卷,命令: docker run -it -v /宿主机绝对路径目录: /容器内目录 镜像名
    在这里插入图片描述
    docker run -itv /home/xxd/docker2:/home/docker2:ro ubuntu #挂载的时候还可以给数据卷加上权限,假如我们要宿主机只能读取容器的数据卷内容不能修改,我们可以添加只读权限, 命令: docker run -it -v /宿主机绝对路径目录 : /容器内目录 :ro 镜像名
    在这里插入图片描述

    docker run -it --name parent -v /home/xxd/docker3:/home/docker3 ubuntu
    docker run -it --name son1 --volumes-from parent ubuntu
    docker run -it --name son2 --volumes-from parent ubuntu
    以上是数据卷共享命令, 只有有一个容器使用数据卷, 都可以进行数据共享, 比如父容器关了, 两个子容器间依旧数据共享。
    在这里插入图片描述
    注: 退出容器并让容器在后台继续运行使用: ctrl + p + q

    数据卷备份

    这个命令较复杂- 3 -

    docker run --name test1 -itv /home/xxd/backup_volumes:/home ubuntu # 先bind一个数据卷准备备份, 或者创建一个数据卷一样的

    docker run --name test2 --volumes-from test1 -it -v $(pwd):/docker_backup_test ubuntu tar cvf /docker_backup_test/home.tar /home # docker run --name 新容器的名字 --volumes-from 要备份的容器的名字 -it -v 本机要bind的路径(现在是当前路径): 容器中要bind的路径 镜像 tar cvf /容器中要bind的路径/压缩好文件的名字 数据卷名字
    在这里插入图片描述
    这里备份好的文件在本机, 叫home.tar

    还原使用的是类似命令, 可以将压缩文件弄到文件后再解压(分开写), 不要再踩坑了

    docker run -itd -p 8000:5001 ubuntu # 端口映射, 本机8000映射容器5001
    docker port aa 5001 # 查看端口
    在这里插入图片描述

    展开全文
  • 前几天遇到这样一个业务场景,数据库运行在docker 中,docker 的市区是utc 所以就跟北京时间相差8个小时。但是又不能重新运行一个容器,只能保证数据库运行状态,并把宿主机的时区复制给docker 容器。很苦恼, 首先...
  • 什么是DockerDocker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中...Docker 常用命令 操作容器 启动容器 启动容
  • docker 常用命令总结

    万次阅读 多人点赞 2019-01-27 18:38:01
    注意 stop,restart后的容器,或者commit后的镜像启动环境变量需要重新加载,比如 source /etc/source 我们运行docker容器的时候,使用了-d参数,把容器在后台...上述命令执行某些命令回报错Failed to get D-Bus co...

    注意 stop,restart后的容器,或者commit后的镜像启动环境变量需要重新加载,比如 source /etc/source

    我们运行docker容器的时候,使用了-d参数,把容器在后台运行后。

    1.启动docker容器

    docker run -d -i -t <imageID> /bin/bash 

    上述命令执行某些命令回报错Failed to get D-Bus connection: Operation not permitted

    可使用如下命令启动

    docker run -d -i -t <imageID> /usr/sbin/init

    这个时候,我们使用docker ps命令,我们就可以知道哪些程序在后台运行。

     

    2.我们要怎么进入到docker容器呢?

    (1)使用docker attach命令

    我们使用

    docker attach db3 或者 docker attach d48b21a7e439

     

    db3是后台容器的NAMES,d48b21a7e439是容器的进程ID  CONTAINER ID

    然后就进去了这个容器的ssh界面。

    但是它有一个缺点,只要这个连接终止,或者使用了exit命令,容器就会退出后台运行

    (2)使用docker exec命令

    这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下

    docker exec -it db3 /bin/sh 或者 docker exec -it d48b21a7e439 /bin/sh

     

    db3是后台容器的NAMES,d48b21a7e439是容器的进程ID  CONTAINER ID

     /bin/sh 是固定写法

    它也能进入这个容器

    3.关闭启动重起
     

    docker stop 容器id
    
    docker start 容器id
    
    docker restart 容器id

    查看所有容器,包括关闭的

    docker ps -a

    4.docker提交新的镜像

    docker commit afcaf46e8305(容器id) centos-vim(自定义名)

    1.停止所有的container,这样才能够删除其中的images:

    docker stop $(docker ps -a -q)

    如果想要删除所有container的话再加一个指令:

    docker rm $(docker ps -a -q)

    2.查看当前有些什么images

    docker images

    3.删除images,通过image的id来指定删除谁

    docker rmi <image id>

    想要删除untagged images,也就是那些id为<None>的image的话可以用

    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

    要删除全部image的话

    docker rmi $(docker images -q)

    以下为网上

    此次操作都是在ubuntu17.01下进行,docker版本是17.10.0-ce,docker-compose是1.17.1.

    docker 存在的意义

    · 使用dokcer加速本地开发和构建,开发人员可以构建、运行并分享Docker容器,容器可以在开发环境中构建,然后轻松地提交到测试环境中,并最终进入生产环境

    · 能够让独立服务或应用程序在不同环境中,得到相同的运行结果。

    · 用docker 创建隔离环境进行测试

    · docker 可以让开发者先在本机上构建一个复杂的程序测试,而不是一开始就在生产环境进行测试

    docker概念

    · Docker 的常用文档:https://docs.docker.com/

    · Docker 镜像: 用户基于镜像来运行自己的容器,可以把镜像当做容器的『源代码』,镜像体积很小,易于分享、存储和更新

    · Registry: Docker 用 Registry 保存用户构建的镜像,Registry 分为公共和私有两种:

    o Docker 公司运营的公共 Registry 叫做 Docker Hub,我们可以在上面注册账号,分享并保存自己的镜像。

    o 可以在 Docker Hub 保存自己的私有镜像或者架设自己私有的 Registry

    · Docker 容器: 把应用程序或服务打包放进去,容器是基于镜像启动的,容器中可以运行一个或多个进程。

    o 镜像是 Docker 生命周期中的构建或打包阶段

    o 容器则是启动或执行阶段

    docker的使用命令

    1 docker 命令介绍

    docker --help

    管理命令:

      container   管理容器

      image       管理镜像

      network     管理网络

    命令:

      attach      介入到一个正在运行的容器

      build       根据 Dockerfile 构建一个镜像

      commit      根据容器的更改创建一个新的镜像

      cp          在本地文件系统与容器中复制 文件/文件夹

      create      创建一个新容器

      exec        在容器中执行一条命令

      images      列出镜像

      kill        杀死一个或多个正在运行的容器    

      logs        取得容器的日志

      pause       暂停一个或多个容器的所有进程

      ps          列出所有容器

      pull        拉取一个镜像或仓库到 registry

      push        推送一个镜像或仓库到 registry

      rename      重命名一个容器

      restart     重新启动一个或多个容器

      rm          删除一个或多个容器

      rmi         删除一个或多个镜像

      run         在一个新的容器中执行一条命令

      search      在 Docker Hub 中搜索镜像

      start       启动一个或多个已经停止运行的容器

      stats       显示一个容器的实时资源占用

      stop        停止一个或多个正在运行的容器

      tag         为镜像创建一个新的标签

      top         显示一个容器内的所有进程

      unpause     恢复一个或多个容器内所有被暂停的进程

     

     

    2. 更详细的功能参数配置

    参数

    解释

    --api-enable-cors=false

    开放远程API调用的 CORS 头信息。这个接口开关对想进行二次开

    发的上层应用提供了支持.

    -b, --bridge=""

    挂载已经存在的网桥设备到 Docker 容器里。注意,使用 none

    可以停用容器里的网络.

    --bip=""

    使用 CIDR 地址来设定网络桥的 IP。注意,此参数和 -b 不能一起使用.

    -D, --debug=false

    开启Debug模式。例如:docker -d -D

    -d, --daemon=false

    开启Daemon模式.

    --dns=[]

    强制容器使用DNS服务器.例如: docker -d --dns 8.8.8.8

    --dns-search=[]

    强制容器使用指定的DNS搜索域名.例如: docker -d --dns-search

    example.com

    -e, --exec-driver="native"

    强制容器使用指定的运行时驱动.例如:docker -d -e lxc

    -G, --group="docker"

    在后台运行模式下,赋予指定的Group到相应的unix socket上。

    注意,当此参数 --group 赋予空字符串时,将去除组信息。

    -g, --graph="/var/lib/docker"

    配置Docker运行时根目录

    -H, --host=[]

    在后台模式下指定socket绑定,可以绑定一个或多个

     tcp://host:port, unix:///path/to/socket, fd://* 或

     fd://socketfd。例如:$ docker -H tcp://0.0.0.0:2375 ps

    或者 $ export DOCKER_HOST="tcp://0.0.0.0:2375" $ docker ps

    --icc=true

    启用内联容器的通信.

    --ip="0.0.0.0"

    容器绑定IP时使用的默认IP地址.

    --ip-forward=true

    启动容器的 net.ipv4.ip_forward.

    --iptables=true

    启动Docker容器自定义的iptable规则.

    --mtu=0

    设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,

    如果没有默认route,就设置成常量值 1500.

    -p, --pidfile="/var/run/docker.pid"

    后台进程PID文件路径.

    -r, --restart=true

    重启之前运行中的容器.

    -s, --storage-driver=""

    强制容器运行时使用指定的存储驱动,例如,指定使用devicemapper,

    可以这样:docker -d -s devicemapper

    --selinux-enabled=false

    启用selinux支持

    --storage-opt=[]

    配置存储驱动的参数

    --tls=false

    启动TLS认证开关

    --tlscacert="/Users/dxiao/.docker/ca.pem"

    通过CA认证过的的certificate文件路径

    --tlscert="/Users/dxiao/.docker/cert.pem"

    TLS的certificate文件路径

    --tlskey="/Users/dxiao/.docker/key.pem"

    TLS的key文件路径

    --tlsverify=false

    使用TLS并做后台进程与客户端通讯的验证

    -v, --version=false

    显示版本信息

     

    *注意:其中带有[] 的启动参数可以指定多次,例如

    docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash

     

    docker基本

    · 查看系统内核

    ·  uname -r

    · 启动docker 境像

    · systemctl start docker

    · 3.查看docker版本

    · docker verison

    · 4.显示docker系统的信息

    · docker info

    操作docker镜像

    1.检索image

    docker search image-name

    2.下载image

    docker pull image-name

    3.列出镜像列表

    docker images

    4.删除一个或者多个镜像

    docker rmi image-name

    5.显示一个镜像的历史

    docker history image-name  

    6.通过容器创建镜像

    *从已经创建的容器中更新镜像,并且提交这个镜像 *使用 Dockerfile 指令来创建一个新的镜像 下面通过已存在的容器创建一个新的镜像。

    docker commit -m="First Image" -a="keke" 7a15f99695c0 keke/unbantu:17.10.0

     

    上面命令参数说明:

    * -m 提交的描述信息

    * -a 指定镜像作者

    * 7a15f99695c0 记住这个是容器id,不是镜像id

    * keke/unbantu:17.10.0 创建的目标镜像名

     

    1. 在Docker 注册账户,发布的镜像都在这个页面里展示

    2. 将上面做的镜像unbantu,起个新的名字unbantu-test

    docker tag keke/unbantu:17.10.0 keke/unbantu-test:lastest

    1. 登录docker

    docker login

    4.上传unbantu镜像

    docker push keke/unbantu-test:lastest

    启动容器

    docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。

    1.在容器中安装新的程序

    docker run image-name apt-get install -y -name

    2.在容器中运行"echo"命令,输出"hello word"

    docker run image-name echo "hello word"

    3.交互式进入容器中

    docker run -i -t image_name /bin/bash  

    注意:在执行apt-get 命令的时候,要带上-y参数。如果不指定-y参数的话,apt-get命令会进入交互模式,需要用户输入命令来进行确认,但在docker环境中是无法响应这种交互的。apt-get 命令执行完毕之后,容器就会停止,但对容器的改动不会丢失.

    查看容器

    1.列出当前所有正在运行的container

    docker ps

    2.列出所有的container

    docker ps -a  

    3.列出最近一次启动的container

    docker ps -l  

    4.保存对容器的修改 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。

    1.保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message

    docker commit ID new-image-name

    5.操作容器

    1.删除所有容器

    docker rm `docker ps -a -q`

    2.删除单个容器; -f, --force=false; -l, --link=false Remove the specified link and not the underlying container; -v, --volumes=false Remove the volumes associated to the container

    docker rm Name/ID

    3.停止、启动、杀死一个容器

    docker stop Name/ID  

    docker start Name/ID  

    docker kill Name/ID

    4.从一个容器中取日志; -f, --follow=false Follow log output; -t, --timestamps=false Show timestamps

    docker logs Name/ID  

    5.列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的

    docker diff Name/ID

    6.显示一个运行的容器里面的进程信息

    docker top Name/ID  

    7.从容器里面拷贝文件/目录到本地一个路径

    docker cp Name:/container-path to-path  

    docker cp ID:/container-path to-path

    8.重启一个正在运行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10

    docker restart Name/ID

    9.附加到一个运行的容器上面; --no-stdin=false Do not attach stdin; --sig-proxy=true Proxify all received signal to the process

    docker attach ID #重新启动并运行一个交互式会话shell

    注意:attach命令允许你查看或者影响一个运行的容器。你可以在同一时间attach同一个容器。你也可以从一个容器中脱离出来,是从CTRL-C.

    保存和加载镜像

    当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。

    1.保存镜像到一个tar包; -o, --output="" Write to an file

    docker save image-name -o file-path

    2.加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file

    docker load -i file-path

    3.从机器A拷贝到机器B

    docker save image-name > /home/keke/main.tar

     

    *使用scp将main.tar拷到机器A上:

     

    docker load < /home/keke/main.tar

     

    登录

    1.登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username

    docker login

    发布docker镜像

    docker push new-image-name

    构建镜像(Dockerfile + docker build)

    FROM ...

     

    RUN ...

     

    # 指定容器内的程序将会使用容器的指定端口

    # 配合 docker run -p

    EXPOSE ...

     

    · RUN: 指定镜像被构建时要运行的命令

    · CMD: 指定容器被启动时要运行的命令

    · ENTRYPOINT: 同 CMD ,但不会被 docker run -t 覆盖

    · WORKDIR: CMD/ENTRYPOINT 会在这个目录下执行

    · VOLUME

    · ADD

    · COPY

    docker history images-name

    1.从新镜像启动容器

    docker run -d -p 4000:80 --name [name] #可以在 Dokcer 宿主机上指定一个具体的端口映射到容器的80端口上

    守护容器

    docker run -d container-name #创建守护容器

    docker top container-name #查看容器内进程

    docker exec container-name touch a.txt #在容器内部运行进程

    docker stop container-name #停止容器

     

    关于docker

    觉得此文章不错可以给我star! 如果还有遇到问题可以加我微信Sen0676备注下来自github,进go实战群详细交流!

    参考资料

    官方英文资源

    · Docker官网:http://www.docker.com

    · Docker windows入门:https://docs.docker.com/windows/

    · Docker Linux 入门:https://docs.docker.com/linux/

    · Docker mac 入门:https://docs.docker.com/mac/

    · Docker 用户指引:https://docs.docker.com/engine/userguide/

    · Docker 官方博客:http://blog.docker.com/

    · Docker Hub: https://hub.docker.com/

    · Docker开源: https://www.docker.com/open-source

    中文资源

    · Docker中文网站:http://www.docker.org.cn

    · Docker中文文档:http://www.dockerinfo.net/document

    · Docker安装手册:http://www.docker.org.cn/book/install.html

    · 一小时Docker教程 :https://blog.csphere.cn/archives/22

    · Docker中文指南:http://www.widuu.com/chinese_docker/index.html

    其它资源

    · Docker 快速手册!

    · Docker 教程

    · MySQL Docker 单一机器上如何配置自动备份

    · https://segmentfault.com/t/docker

    · https://github.com/docker/docker

    · https://wiki.openstack.org/wiki/Docker

    · https://wiki.archlinux.org/index.php/Docker

     

    展开全文
  • Docker 常用命令详细整理 查看Docker信息(version、info) # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 对image的操作(search、pull、images、rmi、history) # 检索image $docker ...
  • Docker 常用命令大全

    万次阅读 多人点赞 2020-05-21 20:49:15
    Docker 常用命令大全


    个人理解 docker中的镜像 就像是咱们java 中的Class ,而容器呢 是基于这个镜像构建出的实例 类似于咱java 中 根据CLass 构造出的一个个实例对象 ,本人是初学者 理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习…

    按我理解 简言之

    docker 镜像: ----java中 class
    
    docker容器 : ----java中 class new 出来的实例对象
    

    (一)docker 基础命令

    启动docker

    systemctl start docker
    

    关闭docker

    systemctl stop docker
    

    重启docker

    systemctl restart docker
    

    docker设置随服务启动而自启动

    systemctl enable docker
    

    查看docker 运行状态 ------如果是在运行中 输入命令后 会看到绿色的active

    systemctl status docker
    

    查看docker 版本号信息

    docker version
    

    查看docker 详细信息 --------此命令可以查看到docker 中容器运行个数 以及镜像个数等等

    docker info
    
    image-20200521111253771

    docker 帮助命令 忘记了某些命令便可使用此进行查看与回顾

    docker --help
    

    比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

    docker pull --help
    
    image-20200521111620131

    (二)docker 镜像命令

    查看自己服务器中docker 镜像列表

    docker images
    

    搜索镜像

    docker search 镜像名
    docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
    
    image-20200521112530211

    拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

    docker pull 镜像名 
    docker pull 镜像名:tag
    

    拉取最新版 mysql

    image-20200521113237254

    咱再来拉取一个指定版本号 镜像 至于版本号呢 可以在docker hub中查看

    docker官方镜像搜索

    image-20200521113551977

    例如 拉取 mysql 5.7.30 ------------------这里出现了一些小东西 感觉挺新奇的 随着学习深入再回过头来看吧

    image-20200521113845254

    为什么提示文件存在 >>>> 请戳: docker 文件分层与数据卷挂载

    运行镜像 ----咱拉取一个tomcat 跑起来试一试

    docker run 镜像名
    docker run 镜像名:Tag
    

    ex:

    docker pull tomcat
    
    docker run tomcat
    

    image-20200521114405215

    发现咱运行后 出现tomcat 默认占用的8080 端口 说明该镜像已经是启动了 ,但是 咱好像鼠标没有回到咱服务器上了 ,这怎么办呢 ?

    使用Ctrl+C注:此方式虽然可以退出容器,此命令是错误的,详细请见下文的容器命令

    docker中 run 命令是十分复杂的 有什么持久运行 映射端口 设置容器别名 数据卷挂载等


    一通测试,发现我们拉了好多镜像了,但我们现在根本用不着,这些无用镜像怎么删除呢?

    删除镜像 ------当前镜像没有被任何容器使用才可以删除

    #删除一个
    docker rmi -f 镜像名/镜像ID
    
    #删除多个 其镜像ID或镜像用用空格隔开即可 
    docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
    
    #删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
    docker rmi -f $(docker images -aq)
    

    强制删除镜像

    docker image rm 镜像名称/镜像ID
    

    镜像的基础命令就到这里 下方会使用更复杂的 docker run 命令 来根据镜像启动容器

    保存镜像
    将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

    命令:

    docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
    

    exmaple:

    docker save tomcat -o /myimg.tar
    
    在这里插入图片描述

    保存镜像任务执行完毕,我们来看下指定位置下是否有该tar?

    在这里插入图片描述

    加载镜像
    任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

    docker load -i 镜像保存文件位置
    

    在这里插入图片描述

    加载文件 恢复为镜像

    在这里插入图片描述

    查看镜像 测试镜像功能是否正常

    我们来把解压的镜像 run一下。

    在这里插入图片描述

    (三)docker 容器命令

    前言已经说了 docker 容器 就好比 咱java中的new出来对象(docker run 镜像 产生一个该镜像具体容器实例),docker 容器的启动需要 镜像的支持

    先放上 docker 容器查看命令

    查看正在运行容器列表

    docker ps
    

    查看所有容器 -----包含正在运行 和已停止的

    docker ps -a
    

    容器怎么来呢 可以通过run 镜像 来构建 自己的容器实例

    运行一个容器

    # -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
    docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 
    

    例如我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5

    #1. 拉取redis 镜像
    docker pull redis:5.0.5
    #2.命令启动
    docker run -it -d --name redis001 redis:5.0.5 /bin/bash
    
    image-20200521141429893
    #3.查看已运行容器
    docker ps
    

    image-20200521141530871

    发现看到了 redis 使用了6379 端口 那么我们在关闭防火墙或开启了安全组的情况下 是否可以进行访问呢?

    为了 区分 咱们使用linux 命令 查看一下

    # netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
    netstat -untlp
    
    image-20200521142934877

    **惊讶的发现,我们redis容器启动占用的 6379端口netstat 没有显示出来?什么情况?赶紧使用 redis desktop manger 连接测试一下 **

    image-20200521143043536

    为什么不行呢 已经确定了 docker 中 redis 容器已经是在运行中 且占有端口 6379啊?

    因为:占用的6379端口 仅仅是在容器中内部本身的端口,与宿主机的6379端口并无联系,我们通过宿主机Ip:6379访问此redis示例,那自然是找不到的哟!


    这里,来补充一点Docker容器的知识!

    每一个 Docker容器都是独立和安全的应用平台(我们可以理解为,每一个docker容器都相当于在我们的服务器上占用资源然后开辟了属于自己的一个空间(也可以理解为服务器))

    image-20210905223422100

    这是Docker 一大特点,每个容器之间环境都是隔离的!!!

    我们甚至可以在一个服务器上,使用docker镜像,来跑出N个 mysql实例(尽管,他们的默认端口都是一样的,但还是那句话,容器间,环境是隔离的。A容器中的3306 与B容器的3306毫无关系,因为其不在一个世界呀!)

    默认情况下,我们是无法通过宿主机(安装docker的服务器)端口来直接访问容器的 ,因为docker容器自己开辟空间的端口与宿主机端口没有联系…

    如果外部想要访问容器,那必须得让容器中的端口与宿主机的端口建立联系绑定起来,这个正式的概念叫做容器端口映射

    有了端口映射,我们就可以将宿主机端口与 容器端口绑定起来,比如 我们建立宿主机的6379端口与容器redis6379端口绑定起来,那么再访问宿主机Ip:6379 就可以访问到对应容器了!

    接下来 进行 容器端口映射演示

    首先停止容器

    # 先停止咱之前运行的 redis 容器 
    docker stop 容器名/容器ID
    
    image-20200521143812702

    然后删除容器 -----不经意间 咱发现已经运行过这么多容器了 咱进行清理一下

    image-20200521143956423

    #删除一个容器
    docker rm -f 容器名/容器ID
    #删除多个容器 空格隔开要删除的容器名或容器ID
    docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
    #删除全部容器
    docker rm -f $(docker ps -aq)
    
    image-20200521144335238

    这样 容器就已经删除完毕了 ,咱们接着弄 前边说的 端口映射

    容器端口与服务器端口映射

    命令:

    -p 宿主机端口:容器端口
    

    还是使用前方的 redis 镜像 尝试 将6379端口 映射到服务器的8888 如果成功了的话 那么咱们访问服务器的8888端口就会访问到咱们的 docker 中 的容器 redis002

    -p 8888:6379 解析 将容器内部的 6379端口与docker 宿主机(docker装在哪太服务器 那台服务器 就是其数组机)8888 端口进行映射 那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了

    docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash
    
    image-20200521144826072

    在运行后 发现服务器的 8888 端口显示已被docker-proxy 所占用了 那么此时咱再用工具进行连接测试呢?

    image-20200521161729868

    那么容器端口映射有没有什么限制呢?

    有的,虽说每个容器之间,环境都是隔离的,但是宿主机每个端口都是一个,8888端口被redis002容器绑定了,那么其他所有的容器都不可以使用8888这个端口了!!!


    有时候,我们需要进入容器内部,修改其配置文件,那么如何才能进入容器内呢?

    进入容器方式一 这里咱就进入 前面的 redis001容器

    docker exec -it 容器名/容器ID /bin/bash
    
    #进入 前面的 redis001容器   
    docker exec -it redis001 /bin/bash
    
    image-20200521141914333

    可以看到 我已经从主机alibyleilei 跳到了容器ID 对应下的 /data 已经是进入到容器内部了

    进入容器方式二 —推荐使用 exec 方式

    docker attach 容器名/容器ID
    

    那怎么退出容器呢 ?

    从容器内 退出到自己服务器中 需注意 两个退出命令的区别

    #-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
    exit
    
    # 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
    Ctrl + p + q
    

    停止容器

    docker stop 容器ID/容器名
    

    重启容器

    docker restart 容器ID/容器名
    

    启动容器

    docker start 容器ID/容器名
    

    kill 容器

    docker kill 容器ID/容器名
    

    容器文件拷贝 —无论容器是否开启 都可以进行拷贝

    #docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
    #从容器内 拷出
    docker cp 容器ID/名称: 容器内路径  容器外路径
    #从外部 拷贝文件到容器内
    docker  cp 容器外路径 容器ID/名称: 容器内路径
    
    

    查看容器日志

    docker logs -f --tail=要查看末尾多少行 默认all 容器ID
    

    image-20200521204550123

    我们在运维的时候,通常给一些软件喜欢设置开机自启动,例如 mysql、redis,这样测试环境服务器重启时可节省不少运维时间成本,那么我们如果是docker容器 是否也可以设置开机自启动容器呢?

    答案是 OKKKKK!

    启动容器时,使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

    ex:

    docker run -itd --name redis002 -p 8888:6379 --restart=always  redis:5.0.5 /bin/bash
    

    这个时候有小伙伴着急了,我都已经启动一个容器好久了,跑了很多数据了,现在才告诉我可以设置自启动?我把容器删了再启动,我数据咋办???

    哎!小伙汁,这个时候不要慌,我告诉你两个办法!

    方法一:担心数据丢了,这说明你在跑容器的时候没有进行数据挂载吧???

    你问我,什么是数据挂载?

    简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

    具体请参考:docker 文件分层与数据卷挂载

    命令:

    -v 宿主机文件存储位置:容器内文件位置
    

    如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件

    -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
    

    示例:

    # 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
    docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"
    

    此方法完了你很无语?那还不是得删容器?是呀!没错!那么为什么你有数据恢复需求而没有想到数据持久化,数据恢复备份,数据卷挂载?自己DEMO的吃亏,是为了平时开发少扣脑壳多摸鱼!

    方法二:不想删容器,又想让这个容器设置开机自启动,那么我们修改其启动配置即可!

    命令:

    docker  update --restart=always 容器Id 或者 容器名
    
    或
    
    docker container update --restart=always 容器Id 或者 容器名
    

    如上,虽然不删容器就设置了自启动需求满足了,但是,危不危险,这个容器有没有需要数据恢复的情况?自己考量吧!!!

    更换容器名

    想给容器换个霸气炫酷吊炸天的名字?

    docker rename 容器ID/容器名 新容器名
    

    ex:

    image-20210917205221992

    (四)自己提交一个镜像

    我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像

    docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
    

    我们拉取一个tomcat镜像 并持久化运行 且设置与宿主机进行端口映射

    docker pull tomcat
    
    docker run -itd -p8080:8080 --name tom tomcat /bin/bash
    

    访问 咱的端口 发现访问404 这是因为咱配置了阿里云镜像后 所拉取得镜像都是最基础班的 仅仅包含其容器必要数据 例如 容器中 vim vi ll 命令都没有

    image-20200521195641404image-20200521195934938

    咱们的webapps 下一个文件都没有 ,访问肯定404罗

    不断查看 发现咱 webapps.dist 下是有文件的 我们把它拷贝的webapps 下 然后打包成一个新的镜像 后 访问查看是否进入到首页 不进入404页面

    image-20200521200509889

    exit 退出容器

    使用 提交命令 将在运行的tomcat 容器 打包为一个全新的镜像 名字为tom Tag为1.0

    docker commit -a="leilei" -m="第一次打包镜像,打包后直接访问还会404吗" 231f2eae6896 tom:1.0
    

    image-20200521200732680
    为了区分 咱停止并删除之前tomcat 的容器
    image-20200521201009678

    接下来 运行咱自己打包的镜像 tom:1.0

    设置容器名字为lei 映射端口为6500:8080

    docker run -d -it  -p6500:8080 --name lei tom:1.0 /bin/bash
    

    image-20200521202016653

    image-20200521201958111

    访问6500 端口进入到了 tomcat 首页 说明 咱commit 镜像成功了

    展开全文
  • Docker常用命令 1.查看Docker信息 # 查看docker版本 docker version # 查看docker信息 docker info # 查看docker帮助文档 docker --help 2.镜像管理 # 列出本地所有镜像 docker images # 登陆到一个Docker镜像仓库...
  • docker常用命令.doc

    2020-09-22 09:56:08
    docker常用命令,安装docker,镜像,容器,仓库,数据券,网络,定制镜像,Docker compose,Docker machine,Docker swarm
  • 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其...
  • docker常用命令整理

    2018-11-19 16:55:52
    docker虚拟化开发当中整理的常用命令。实用。回头再分享k8s的
  • 《 Docker常用命令大全速查表 》 前言 在前面的博文种,完成了对docker的系列命令操作于详解,使用的命令也是东一个,西一个的,很难实现快速定位和查找,这儿博主进行了所有关于docker命令进行了整理,方便...
  • 上篇博客记录了linux系统如何安装docker,这一篇介绍一下docker的基本命令,以及使用docker安装mysql 1.docker基本命令 docker search xxx --搜索镜像 docker pull xxx --拉取镜像 docker images --查看当前安装的...
  • Docker常用命令

    万次阅读 多人点赞 2015-01-11 15:45:43
    又把官方文档过了一遍,总结一下常用命令 镜像管理 docker images:列出本地所有镜像 docker search :查找image docker pull :下载image docker push :上传image docker rmi :删除image 容器...
  • docker启动命令,docker重启命令,docker关闭命令 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo se...
  • 继续docker的学习之旅,今天练习一些常用命令: 一、镜像相关 1.1 列出本机所有镜像 后面的操作,都以ubuntu做为练习的目标。 另外:如果某些镜像文件不想要了,可以用下面的命令删除 1.2 删除镜像 docker rmi ...
  • Docker常用命令及参数

    2021-01-20 12:11:32
    Docker镜像命令Docker镜像检索: docker search 镜像名 检索redis输入: docker search redis Docker镜像下载: docker pull 镜像名 下载redis输入: docker pull redis Docker镜像列表: docker ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,064
精华内容 25,225
关键字:

docker常用命令