• docker学习笔记


    win10机器: docker下载: https://www.docker.com/products/docker#/windows

    win10之外的win机器: docker下载: https://www.docker.com/products/docker-toolbox

      boot2docker.iso下载地址:https://pan.baidu.com/s/1qYyc0ag

      copy到用户/.docker/machine/cache/下

    docker version  验证


    macos机器: Yosemite 10.10.3+(2014/6)):  https://www.docker.com/products/docker#/mac


    ubuntu机器:

    uname -r

    apt-get update

    apt-get install -y docker.io

    或者安装最新版 curl -s https://get.docker.com|sh

    docker version

    service docker start

    docker version

    第一个docker镜像:

      docker pull [OPTIONS] NAME[:TAG]

      docker images [OPTIONS][REPOSITORY][:TAG]

    docker images

    docker pull hello-world

    docker images

      docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

    docker run hello-world

    实践前奏

    #持久运行的容器

    #前台挂起&后台运行

    #进入容器内部

      docker pull hub.c.163.com/library/nginx:latest

      docker run hub.c.163.com/library/nginx:latest

         docker run -d hub.c.163.com/library/nginx:latest  --后台启动

      docker ps  --查看运行的docker

      docker exec -it 9ffb2a bash

      docker stop [id号]

    Docker网络

      #网络类型

        Bridge  Host  None

      #端口映射

      docker run -d -p 80:80 hub.c.163.com/library/nginx:latest

      netstat -na|grep 8080

    docker容器的commit

    docker cp [文件] id://usr/share/nginx/html  --复制到docker容器

    docker run .........

    docker commit -m 'fun' id号 nginx-fun  --保存新的image

    docker rmi id号    --删除image

    docker stop id号       --停止container

    docker ps -a      --(历史??)

    docker rm id号    ---删除container

    docker cp      --host 与 container 之间 copy


    制作自己的镜像

      #Dockerfile

      #docker build

      #Jpress: http://jpress.io/

     Dockerfile语法:

      命令  用途

      from  base image

      run   执行文件

      add   添加文件(可以添加远程文件)

      copy   拷贝文件

      cmd   执行命令

      expose  暴露端口

      workdir  指定路径

      maintainer 维护者信息

      env    设定环境变量

      entrypoint 容器入口

      user    指定用户

      volume  mount point

    vim Dockerfile

    from tomcat

    MAINTAINER LZP LZP@163.com

    COPY Jpress.war /usr/local/tomcat/webapps/

    docker build -t jpress:latest .

    docker run -d -p 8080:8080 jpress

    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress mysql

    ...

     docker restart bf7f65e9d407


     volume独立于容器之外的持久化

    1.

    docker run -d --name nginx -v /usr/share/nginx/html registry.cn-beijing.aliyuncs.com/opendcp/nginx

    docker inspect nginx

    macos: screen ~/Library/...../tty

      cd ......

    linux: cd /var/lib/docker/volumes/6e40d92ac1795827bd6e156962ef99056a58fd1aa9e1ab138c39978feee20712/_data

    ===> 容器的 /usr/share/nginx/html

    2.

    mkdir d2

    cd d2

    docker run -d -p 80:80 -v $PWD/html:/usr/share/nginx/html registry.cn-beijing.aliyuncs.com/opendcp/nginx

    curl http://localhost

    3.

    mkdir d3

    cd d3

    mkdir data

    docker create -v $PWD/data:/var/mydata --name data_container ubuntu

    docker run -it --volumes-from data_container ubuntu /bin/bash    --it ....... /bin/bash交互的方式运行

    mount命令 可以查看到/var/mydata挂载到当前容器


    Registry

    镜像仓库

    host    本机

    image     镜像

    container  容器

    redistry   仓库

    daemon   守护进程

    client    客户端

    docker search whalesay

    docker pull whalesay

    docker push myname/whalesay

    国内的一些仓库

    daocloud

    时速云

    aliyun

    docker tag xx/xx aa/bb

    docker images 查看会多出一个images叫aa/bb的镜像, 和xx/xx一样的, 相当有复制

    docker login

      Username: xxx

      Password: xxx

    docker push aa/bb


    docker-compose 工具安装

    mak/windows: 自带

    Linux: curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose

    sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    chmod a+x docker-compose

    docker-compose --version

    mkdir ghost; cd ghost; mkdir ghost nginx data

    cd ghost; touch Dockerfile

    from ghost
    copy ./config.js /var/lib/ghost/config.js
    expose 2368
    cmd ["npm","start","--production"]

    cp ../../backup/ghost/config.js

    cd ../nginx; touch Dockerfile

    from nginx
    copy nginx.conf /etc/nginx/nginx.conf
    expose 80

    touch nginx.conf

    worker processes 4;
    event{
      worker_connections 1024;
    }
    http{
      server{
        listen 80;
        location / {
          proxy_pass http://ghost-app:2368
        }
      }
    }

    cd ..

    touch docker-compose.yml

    version: '2'
    networks:
      ghost:
    services:
      ghost-app:
        build: ghost
        networks:
          - ghost
        depends_on:
          - db
        ports:
         - "2368:2368"
      nginx:
        build: nginx
        networks:
          - ghost
        depends_on:
          - ghost-app
        ports:
          - "80:80"
      db:
        image: "mysql:5.7.15"
        networkds:
          - ghost
        environment:
          MYSQL_ROOT_PASSWORD: mysqlroot
          MYSQL_USER: ghost
          MYSQL_PASSWORD: ghost

        volumes:
          - $PWD/data:/var/lib/mysql
        ports:
          - "3306:3306"

    docker-compose up -d

    docker-compose stop

    docker-compose rm

    docker-compose build 

    docker-compose up -d

    docker-compose.yml 常用命令:

    命令     用途

    build     本地创建镜像

    command   覆盖缺省命令

    depends_on  连接容器

    ports     暴露端口

    volumes    卷

    image     pul镜像

    up       启动服务

    stop      停止服务

    rm       删除服务中的各个容器

    logs       观察各个容器的日志

    ps       列出服务的相关的容器


    Redhat & CentOS机器:  http://www.imooc.com/article/16448

    CentOS7为例安装

    1、安装Docker

    参见:https://docs.docker.com/engine/installation/linux/centos/

    2、直接使用root安装(更新系统)

    yum update

    3.配置docker镜像源

    tee /etc/yum.repos.d/docker.repo <<-'EOF'
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF

    4.安装docker

    yum install docker-engine

    root: sudo wget -qO- https://get.docker.com/ | sh

     sudo usermod -aG docker [用户名]  --用户加入docker组

    docker version

    5.启动docker

    安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

    1. [root@localhost ~]# service docker start
    2. [root@localhost ~]# chkconfig docker on

    (LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:

    1. [root@localhost ~]# systemctl start docker.service
    2. [root@localhost ~]# systemctl enable docker.service

    ----国内镜像加速器配置

    DaoCloud加速器: 首先在http://www.daocloud.io/进行注册登录。然后点击加速器。

    阿里云加速器:

    加速器:https://cr.console.aliyun.com/#/accelerator

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors":["https://xxxxxxxx.mirror.aliyuncs.com"],
    "live-restore":true
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
     
    https://dev.aliyun.com/list.html
     

    卸载

    1.查询安装过的包

    yum list installed | grep docker

    docker-engine.x86_64                 17.03.0.ce-1.el7.centos         @dockerrepo

    2.删除安装的软件包

    yum -y remove docker-engine.x86_64

    3.删除镜像/容器等

    rm -rf /var/lib/docker

  • 相关阅读:
    Android自动化测试解决方案
    Oracle数据库的DML命令的处理过程详解
    Oracle数据库的BULK COLLECT用法之批量增删改
    建设DevOps能力,实现业务敏捷
    强大的C# Expression在一个函数求导问题中的简单运用
    Visual Studio 11开发者预览版发布(附下载)
    js table隔行变色
    编译原理语法推导树
    巧用数据库归档技术解决性能下降问题
    编译原理正规式和有限自动机
  • 原文地址:https://www.cnblogs.com/liuzhipeng/p/7523793.html
Copyright © 2020-2023  润新知