码迷,mamicode.com
首页 > 其他好文 > 详细

docker使用示例

时间:2018-07-24 00:50:20      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:info   数据   9.4   删除   手动   技术分享   扩展   l数据库   ase   

本文使用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

docker使用示例

标签:info   数据   9.4   删除   手动   技术分享   扩展   l数据库   ase   

原文地址:https://www.cnblogs.com/shijingjing07/p/9357666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!