zoukankan      html  css  js  c++  java
  • docker

    1.Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后就受到广泛的关注和讨论,
    目前已有多个相关项目,逐渐形成了围绕Docker的生态体系。dotCloud公司后来也改名为Docker Inc,专注于Docker相关技术和产品的开发。
    2.Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere

    关于DevOps的一些有意思的观点,这有助于理解为什么使用docker:

    http://server.zol.com.cn/593/5933044.html

    http://www.oschina.net/news/78004/how-about-learn-devops-at-2016


    =======================================================================================================

    docker在ubuntu-14.04上安装
    参考:https://docs.docker.com/engine/installation/linux/ubuntulinux/,下面的实际上都来自这个网页

    (1)检查内核版本,需要大于3.10,这通常不是问题
    $ uname -r

    (2)更新源
    $ sudo apt-get update
    $ sudo apt-get install apt-transport-https ca-certificates
    $ sudo apt-key adv  --keyserver hkp://ha.pool.sks-keyservers.net:80  --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    $ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
    $ apt-cache policy docker-engine           可以查看docker版本(和https://github.com/docker/docker比较版本)
    $ sudo apt-get update
    $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
    $ sudo apt-get install docker-engine

    (3)查看信息和版本,升级
    $ sudo docker version
    $ sudo docker info
    当前docker服务是root运行,所以上面2个指令也需要root权限
    $ sudo service docker start
    $ sudo docker run hello-world
    $ sudo apt-get upgrade docker-engine       升级

    (4)自动补全,用户组,及代理

    /root/.bashrc最后加一行

    . /usr/share/bash-completion/bash_completion

    用户组:

    执行gpasswd -a wyt docker 和service docker restart,把用户wyt加入到docker组,以后就不需要带sudo了

    代理:

    修改Docker配置文件/etc/default/docker如下:
    DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"
    使用service docker restart重启Docker服务即可

    (5)在web上维护docker

    推荐安装https://github.com/portainer/portainer

    启动脚本加入:

    /home/wyt/bin/portainer/portainer --assets="/home/wyt/bin/portainer" &


    =======================================================================================================
    传统虚拟机和docker区别:

     vs

    仓库—仓库是存放镜像的地方,有类似git的版本控制,同样分为公开仓库(Public)和私有仓库(Private)两种形式;
    镜像—Docker的镜像和常见的系统ISO镜像类似,包含了应用程序的信息;
    容器—容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,Docker运行在“Docker”上;

    常用命令:

    docker pull index.alauda.cn/alauda/ubuntu
    docker images             得到image id:7e0e965a5c9f
    docker run -i -t -v /data/:/data/  7e0e965a5c9f   /bin/bash

    # 下载一个ubuntu镜像
    sudo docker pull ubuntu
    # 使用ubuntu运行一个交互性的shell
    sudo docker run -i -t ubuntu /bin/bash
    #docker ps命令
    sudo docker ps #列出当前所有正在运行的container
    sudo docker ps -l #列出最近一次启动的,且正在运行的container
    sudo docker ps -a #列出所有的container
    #port命令
    docker run -p 80:8080 <image> <cmd> #映射容器的8080端口到宿主机的80端口
    #删除容器命令
    sudo docker rm `sudo docker ps -a -q`#删除所有容器
    sudo docker rm $CONTAINER_ID#删除容器id为CONTAINER_ID的容器
    #其他命令快速参考:
    sudo docker images #查看本地镜像
    sudo docker attach $CONTAINER_ID #启动一个已存在的docker实例
    sudo docker stop $CONTAINER_ID #停止docker实例
    sudo docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行
    sudo docker inspect $CONTAINER_ID #查看container的实例属性,比如ip等等

    docker run <相关参数> <镜像 ID> <初始命令>
    -i:表示以“交互模式”运行容器
    -t:表示容器启动后会进入其命令行
    -v:表示需要将本地哪个目录挂载到容器中

    -d: 后台运行
    格式:-v <宿主机目录>:<容器目录>

    docker run                                                                                                          index.alauda.cn/alauda/ubuntu       /bin/bash

    docker run                          -i -t -v /data/:/data/                                                   index.alauda.cn/alauda/ubuntu       /bin/bash

    docker run --name ubuntu1 -i -t -v /data/:/data/                                                    index.alauda.cn/alauda/ubuntu       /bin/bash

    docker run --name ubuntu1 -i -t -v /data/:/data/    -p 8080:80                                index.alauda.cn/alauda/ubuntu       /bin/bash

    docker run --name ubuntu1 -i -t -v /data/:/data/    -p 8080:80    --restart=always    index.alauda.cn/alauda/ubuntu       /bin/bash

    (容器的80端口,主机的8080端口)restart always表示开机自动启动container

    更改镜像和容器默认存储路径:

    Ubuntu/Debian: edit your /etc/default/docker file with the -g option: DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"

    Fedora/Centos: edit /etc/sysconfig/docker, and add the -g option in the other_args variable: ex. other_args="-g /var/lib/testdir".

    镜像操作:

    docker images

    docker images -a

    docker tag nginx nginx2

    docker rmi nginx2

    docker rmi nginx (当删除一个镜像的最后一个tag时,该镜像文件也会被删除,指定id也可以直接删除)

    docker save busybox -o 1.tar

    docker load --input 1.tar

    一个重要的镜像:https://github.com/hopsoft/docker-graphite-statsd

    docker pull hopsoft/graphite-statsd

    docker run -d --name graphite --restart=always -p 65160:80 -p 65163-65164:2003-2004 -p 65173-65174:2023-2024

    -p 65175:8125/udp -p 65176:8126 hopsoft/graphite-statsd

    浏览器打开:http://192.168.8.163:65160/

  • 相关阅读:
    SQL随机排序
    根据经纬度获取所在城市的相关信息以及根据地点城市获取经纬度
    百度收集自动推送脚本——python版
    采集(未测试)
    网页代码测试工具(很有用)
    微信红包源码2020年最新版(完整测试版)
    mvc返回多个结果集,返回多个视图
    计算工龄(mssql标量值函数)
    YZMCMS发布问题以及解决方法
    用输出的方式向页面和js增加引入
  • 原文地址:https://www.cnblogs.com/wjx0912/p/6206162.html
Copyright © 2011-2022 走看看