zoukankan      html  css  js  c++  java
  • docker学习笔记 一 安装以及简单操作

    一  安装

      我是在centOS7上安装的docker,安装比较简单,没碰到什么其他问题。

    yum install docker 一会就安装好了。

    安装完之后,启动docker服务,并将其设置为开机启动

    service docker start    ---- 启动docker服务

    chkconfig docker on   ----- 设置docker服务为开机启动

    docker version 出现docker的信息 

    二 docker镜像,容器的 基操

    首先先干掉国外仓库地址,太慢了,换成国内的仓库地址。

    修改  /etc/docker/daemon.json文件  

    添加下面的内容 

    {
        "registry-mirrors": ["http://f2d6cb40.m.daocloud.io"],
        "live-restore": true
    }

    1 docker版helloworld

    这里面用到了docker的几个的基础命令 

    (1)docker pull library/hello-world     

              ---从远程拉取hello-world的镜像到本地 ,brary/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所            在的组,hello-world是 image 文件的名字   也可以用 docker pull centos:latest  改命令会从docker hub上拉取最新的镜像

    (2)docker images 可以查看本机的镜像

    (3)docker  run hello-world    ---运行image,这一步之后就可以看到如下信息,docker版hello-world就成功了

    (4)docker rmi  镜像名/镜像id     ----删除本地镜像

    (5) docker ps   ----查看正在运行的容器

    (6)docker ps -a  ----查看本地所有的容器

    (7)docker  start/stop/restart  容器id/容器名称   -----启动/停止/重启docker容器

    (8)docker attach 容器id/容器名称   ----启动容器后 用这个命令进入容器

    (9)docker rm 容器id/容器名称    ----删除容器

    (10) docker info  --查看当前系统的docker信息

      (11)   docker ps --filter 按容器id或名称过滤正在运行的容器

               docker ps --filter name=nginx #列出正在运行容器名包含nginx的容器,也可以  docker ps --filter name=.*nginx.*  效果是             一样的

               另外还支持正则表达式,把name=后面的名称换成正则表达式就行

    2 进入容器内部看看

       (1)先拉一个ubuntu的镜像来,并且运行起来,用下面这个命令 

    docker run -it ubuntn  /bin/bash

    首先docker会执行 run命令,本地有ubuntn镜像就会直接运行,没有就会到仓库拉取一个。

    - i 和-t两个参数是创建一个我们能与之交互式的容器,而不是一个后台服务的容器。这个我也不懂,后面再研究研究

    在这个命令的背后,docker用ubuntn镜像在文件系统内部创建一个新容器。该容器有自己的网络,ip地址,以及一个用来和宿主机进行通信的桥接网络接口。/bin/bsah是创建完容器之后要执行的命令,情动一个Bash shell

    可以看到执行这条命令前后,主机名不一样,执行完命令之后,进入到容器里面了,主机名默认是容器id

    你也可以先运行这个容器,然后再进入这个容器

    (2)进入容器后,查看容器的host文件

    cat /etc/hosts  可以看到最后一行有  172.17.0.2    99bf45c4b2c3  172.17.0.2就是容器的ip

      

    ----容器里安装软件包:和在ubuntu中安装是一样的。下面安装下vim编辑器

    apt-get update && apt-get install vim 

    ----给容器命名:  启动容器是加上 --name 容器名即可 例:docker run --name docker_test -it ubuntu /bin/bash

    ----创建守护式容器:守护式容器没有交互式会话,非常适合运行应用程序和服务。大多数时候我们都是以守护式来运行一个容器。

    守护式容器只需要在启动命令加 -d参数,表示后台运行该容器。例:docker run --name docker_test -d ubuntu /bin/bash

    docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" 这个命令创建了一个守护式的容器,在后台一直打印hello world

    -----查看该容器日志 docker logs daemon_dave 

         在命令中加-f参数来跟踪日志,这与tail -f命令很类似 会一直输出容器的日志。

         也可以加上 --tail  10 来跟踪某一段日志。例 docker logs --tail 10 daemon_dave  只显示最后10行日志

         也可以

    ------日志驱动

          控制docker守护进程和容器所用的日志驱动,通过参数 --lod-driver来实现

         docker run --log-driver="syslog"  --name daemon_dave -d ubuntu /bin/sh 。通过该命令启动容器,会禁用docker logs命令,       并且将容器的日志输出都重定向到syslog

    ----查看容器内进程

        docker top 容器名 

    ----深入查看容器的信息

        docker inspect 容器名 查看容器的名称,网络等详细信息

         用-f 或 --format参数来选定查看结果 例 docker inspect --format='{{.State.Running}}'  daemon_dave

       查看多个容器信息 docker  inspect -f='{{.Name}} {{.State.Running}}' daemon_dave 99bf45c4b2c3  

      一般docker中 容器名称和id可以通用

  • 相关阅读:
    SpringBoot多数据源动态切换数据源
    @ConfigurationProperties 在IDEA中出现红色波浪线问题
    springboot+mybatis实现动态切换数据源
    Spring Boot配置多个DataSource
    模拟测试 20190714
    暴力日记
    模拟测试20190707 [排序//划艇//放棋子]
    组合数学总结
    莫比乌斯专题总结
    AC自动机总结
  • 原文地址:https://www.cnblogs.com/labtabhub/p/12164198.html
Copyright © 2011-2022 走看看