docker使用示例
Posted shijingjing07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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源码
[email protected]:/home/shijingjing# mkdir docker-demo && cd docker-demo
[email protected]:/home/shijingjing/docker-demo# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[email protected]:/home/shijingjing/docker-demo# tar -xvf wordpress-4.9.4-zh_CN.tar.gz
[email protected]:/home/shijingjing/docker-demo# ls
wordpress wordpress-4.9.4-zh_CN.tar.gz
2)运行php-apache容器
[email protected]:/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容器
[email protected]:/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容器
[email protected]:/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扩展的容器
[email protected]:/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容器
[email protected]:~# docker container run -d --rm --name mydb --env MYSQL_ROOT_PASSWORD=123456 --env MYSQL_DATABASE=wordpress mysql:5.7
2)运行wordpress容器
[email protected]:~# docker container run -d --rm --name wordpress -p 8000:80 --link mydb:mysql wordpress
3)浏览器访问
4)容器文件和本地文件相互映射
当我们需要修改容器文件的内容时,可以将容器文件映射到本地,修改本地,会反映到容器。
[email protected]:~# docker container run -d --rm --name wordpress -p 8000:80 --link mydb:mysql --volume "$PWD/wordpress":/var/www/html wordpress
[email protected]:/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使用示例的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段
html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。