Docker

Docker 安装应用

  • 安装 odoo 10 : 
    docker pull postgres:9.6 &&docker pull odoo:10 && docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.6 && docker run -p 8899:8069 --name odoo --link db:db -t odoo:10.

     http://127.0.0.1:8899  
    如果是在登陆界面的话,是因为有一个默认帐户。如果不知道邮箱帐号,登陆按钮下有一个管理数据库。点击进去删除odoo后会自动跳转注册页;注册完成即可使用了; 不明白,再沟通;

  • 安装 erpnext :
    docker pull lukptr/erpnext7 && docker run -d --name erpnext -p 8900:80 lukptr/erpnext7
     http://127.0.0.1:8900  
  • 安装 magento2 :
    git clone https://github.com/alexcheng1982/docker-magento2.git && cd docker-magento2 && docker-compose up -d && docker exec -it docker-magento2_web_1 install-magento && docker exec -it docker-magento2_web_1 install-sampledata
    http://local.magento
    注意添加主机 Hosts 127.0.0.1 local.magento 
  • -

Windows 7 下安装 docker 应用容器引擎

十大基于 Docker 的开发工具

50+个有用的Docker工具

command:

  1. docker info | grep 'registry' -A3 ;   查看当前镜像源
  2. vim /etc/docker/daemon.json l;         创建或编辑该文件,可以添加镜像源;
  3. -


问题1:Service 'mysql' failed to build: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
  解决:添加配置 http://f1361db2.m.daocloud.io   》》 重启;

  

问题2:SQLSTATE[HY000] [2002] Connection refused;

  解决:使用容器名称连接数据库;

     array(
           ‘host' => 'mysql',
           'dbname' => 'database',
           'username' => 'dev',
           'password' => 'dev',
           'active' => '1',
    ),

问题3:Mac Get https://registry-1.docker.io/v2/: x509: certificate is valid for drivefca.com, www.drivefca.com, not registry-1.docker.io

  解决:在 Docker Engine 修改如下:

{
  "debug": true,
  "experimental": false,
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries":["registry-1.docker.io"]
}

或者:https://wj5tcd3l.mirror.aliyuncs.com 为别人的源连接,也可以通过阿里云生成自己连接。(https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

{
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
    "https://wj5tcd3l.mirror.aliyuncs.com"
  ],
  "insecure-registries": [
    "registry-1.docker.io"
  ]
}

问题4:ENV 设置代理网络无法连接本地宿主机,无论是127.0.0.1还是固定的本地IP都无法代理成功;

  解决: 在docker 客户端 -》Prefrences -》Resouces -》Proxy 设置本地代理:

     

 问题5:当docker 下载镜像特别慢的时候;

  解决:创建或编辑 /etc/docker/daemon.json 文件,可以添加镜像源;

{
  "registry-mirrors" : [
    "http://ovfftd6p.mirror.aliyuncs.com",
    "http://registry.docker-cn.com",
    "http://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug" : true,
  "experimental" : true
}

   重启:systemctl restart docker 

---

 #实例

  1. 实例: 持久化Odoo 11 安装程序 install.sh:
    # =================
    # bin/bash
    # author Xu
    # ++++++++++++++++++++++
    
    # ----------- createFile
    # arg 1 is Filename
    # arg 2 is Contents
    # return 1
    function createFile ()
    {
        if [ -f "./"$1 ];then
        echo "The File "$1" already exists!"
        echo "
        Whether to delete ?"$1"
        (0) NO
        (1) YES
        "
        read -p 1 input
        case $input in
            0)
            exit;;
            1)
            rm $1
            exit;;
        esac
    else
        echo " Create add file "$1".  OK"
        cat>>$1 <<EDF
    $2
    EDF
    fi
        return 1
    }
    # Create add file .env
    env=".env"
    createFile $env 'POSTGRES_PASSWORD=odoo
    POSTGRES_USER=odoo'
    
    # Create add file docker-compose.yaml
    docker_compose_yaml="docker-compose.yaml"
    createFile $docker_compose_yaml "version: '2'
    services:
      web:
        image: odoo:11.0
        depends_on:
          - db
        ports:
          - "8069:8069"
        volumes:
          - odoo-web-data:/var/lib/odoo
          - ./config:/etc/odoo
          - ./addons:/mnt/extra-addons
      db:
        image: postgres:10
        environment:
          - POSTGRES_PASSWORD
          - POSTGRES_USER
          - PGDATA=/var/lib/postgresql/data/pgdata
        volumes:
          - odoo-db-data:/var/lib/postgresql/data/pgdata
    volumes:
      odoo-web-data:
      odoo-db-data:"
    
    #  Create add odoo.conf
    odoo_conf="odoo.conf"
    createFile $odoo_conf "[options]
    addons_path = /mnt/extra-addons
    data_dir = /var/lib/odoo
    ; admin_passwd = admin
    ; csv_internal_sep = ,
    ; db_maxconn = 64
    ; db_name = False
    ; db_template = template1
    ; dbfilter = .*
    ; debug_mode = False
    ; email_from = False
    ; limit_memory_hard = 2684354560
    ; limit_memory_soft = 2147483648
    ; limit_request = 8192
    ; limit_time_cpu = 60
    ; limit_time_real = 120
    ; list_db = True
    ; log_db = False
    ; log_handler = [':INFO']
    ; log_level = info
    ; logfile = None
    ; longpolling_port = 8072
    ; max_cron_threads = 2
    ; osv_memory_age_limit = 1.0
    ; osv_memory_count_limit = False
    ; smtp_password = False
    ; smtp_port = 25
    ; smtp_server = localhost
    ; smtp_ssl = False
    ; smtp_user = False
    ; workers = 0
    ; xmlrpc = True
    ; xmlrpc_interface = 
    ; xmlrpc_port = 8069
    ; xmlrpcs = True
    ; xmlrpcs_interface = 
    ; xmlrpcs_port = 8071
    "
    echo "install images;"
    docker-compose up -d
    #================================
    View Code
    运行完成以后,帐号admin的密码为 admin . 可以自行修改密码; 
    ---
    可能遇到的问题:
    我们有些朋友不愿意使用数据卷的形式持久化数据。想使用绝对的路径的使用。但本实例更改为绝对路径的话,会导致无法重启成功容器;那些下面附使用卷管理的基本命令:
    a), 进入镜像:docker exec -it 《容器id》 /bin/bash 或者 docker exec -it 《容器id》sh
    b),查看容器的虚拟卷挂载位置:docker inspect 《容器id》 | grep  /var/lib/docker/volumes
    c),使用MAC OS 系统时,docker volume ls 查看卷列表,然后进入Volumes虚拟卷:screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
    d),Volumes 虚拟卷退出:先按 "Ctrl-a" 再按 "d".
  2. 更新Dockerfile文件后,最低成本的更新镜像的方法。docker-compose up -d --build  -有时候就是一个参数可以解决的事
  3. Docker 数据库的访问 是使用 Container Name (容器名称) 做为 host 名称 使用。
  4. Centos Curl 下载导致无法安装Docker-compose 时:
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    chmod +x /usr/local/bin/docker-compose
  5. -----------
原文地址:https://www.cnblogs.com/q1104460935/p/9627878.html