zoukankan      html  css  js  c++  java
  • docker使用示例

    本文使用docker容器运行wordpress博客,采用了三种方法来演示,docker的使用
    自建wordpress容器
    采用官方的wordpress容器
    采用docker compose容器管理工具

    1.运行wordpress需要的环境
    1)wordpress源码
    2)php运行环境
    3)mysql

    2.自建wordpress容器
    自建wordpress容器,将wordpress源码,相关php,mysql依赖,打包成一个image文件
    1)下载wordpress源码

    root@iZ238ut6jbcZ:/home/shijingjing# mkdir docker-demo && cd docker-demo
    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# tar -xvf wordpress-4.9.4-zh_CN.tar.gz
    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# ls
    wordpress  wordpress-4.9.4-zh_CN.tar.gz
    

    2)运行php-apache容器

    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# docker container run -d --rm --name wordpress -p 8000:80 --volume "$PWD/":/var/www/html php:5.6-apache
    

    -d: 容器后台运行
    --rm: 容器停止后,自动删除容器文件
    --name: 容器命名
    -p: 端口映射,apache默认80端口,将容器的80端口映射到外部的8000端口
    --volume: 文件夹内容映射,当前文件夹和容器的/var/www/html相互映射
    php:5.6-apache:官方php image

    查看php容器运行状态:

    3)浏览器访问8000端口

    访问外部8000端口,实际上访问的是容器的80端口,网站根目录/var/www/html,中wordpress文件夹

    点击下一步,会要求输入数据库用户名,密码等

    因此,我们必须要关联mysql容器

    3)运行mysql容器

    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# docker container run -d --rm --name mydb --env MYSQL_ROOT_PASSWORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.7
    

    -d: 容器后台运行
    --rm: 容器停止后,自动删除容器文件
    --name: 容器命名
    --env: 传入容器的变量
    MYSQL_ROOT_PASSWORD:mysql root用户密码设置
    MYSQL_DATABASE:mysql数据库,不存在时创建

    查看mysql容器运行状态:

    4)关联mysql容器

    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# docker container run -d --rm --name wordpress -p 8000:80 --volume "$PWD/":/var/www/html --link mydb  php:5.6-apache
    

    提交,依然报错

    这是因为,我们运行的php环境,不支持mysql数据库驱动

    5)创建带有mysql扩展的php image
    新建Dockerfile文件

    FROM php:5.6-apache
    RUN docker-php-ext-install mysqli
    

    创建image文件

    5)运行创建的含有mysql扩展的容器

    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# docker container run -d --rm --name wordpress -p 8000:80 --volume "$PWD/":/var/www/html --link mydb:mysql phpwithmysql
    

    点击提交,创建数据库成功!

    2.使用官方Wordpress image
    1)运行mysql容器

    root@iZ238ut6jbcZ:~# docker container run -d --rm --name mydb --env MYSQL_ROOT_PASSWORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.7
    

    2)运行wordpress容器

    root@iZ238ut6jbcZ:~# docker container run -d --rm --name wordpress -p 8000:80 --link mydb:mysql wordpress
    

    3)浏览器访问

    4)容器文件和本地文件相互映射
    当我们需要修改容器文件的内容时,可以将容器文件映射到本地,修改本地,会反映到容器。

    root@iZ238ut6jbcZ:~# docker container run -d --rm --name wordpress -p 8000:80 --link mydb:mysql --volume "$PWD/wordpress":/var/www/html wordpress
    root@iZ238ut6jbcZ:/home/shijingjing/docker-demo# ls
    wordpress  wordpress-4.9.4-zh_CN.tar.gz
    

    3.使用Docker Compose工具
    前两种方法,都需要手动运行多个容器,docker compose提供了一种更简单的管理多个容器的方法。
    1)安装docker compose

    apt install docker-compose
    

    2)在docker-demo文件下下,新建docker-compose.yml配置文件

    mydb:
        image: mysql:5.7
        environment:
         - MYSQL_ROOT_PASSWORD=123456
         - MYSQL_DATABASE=wordpress
    wordpress:
        image: wordpress
        links:
         - mydb
        ports:
         - "0.0.0.0:8000:80"
        working_dir: /var/www/html
        volumes:
         - wordpress:/var/www/html
    

    顶层标签标示有两个容器mysql和web,具体的参数我们在前面已经介绍过

    3)使用docker-compose启动容器

    docker-compose up
    

    4)浏览器访问

    5)关闭容器

    docker-compose stop 
    

    6)删除容器文件,需在stop后

    docker-compose rm
    
  • 相关阅读:
    Return Largest Numbers in Arrays
    Title Case a Sentence
    Find the Longest Word in a String
    Check for Palindromes
    Factorialize a Number
    Reverse a String
    nodejs使用场景
    居中div,居中浮动的元素
    WebSocket解释及如何兼容低版本浏览器
    HTML5的离线储存
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/9357666.html
Copyright © 2011-2022 走看看