您的位置:首页 > 运维架构 > Docker

# docker 初探01-安装MySQL和wordpress

2017-04-04 15:50 363 查看
docker 初探 读书笔记 《docker 经典实例》

安装

因为众所周知的原因,在国内访问某些网站的时候体验非常不好,所以docker安装源建议采用本地的安装包。daocloud.io这个公司做了dockerhub的镜像。

安装脚本:

curl -sSL https://get.daocloud.io/docker | sh


修改镜像源

这儿比较麻烦的是,需要从上面的那个网站注册一个账号,才能获得一个加速地址

参加网站:https://www.daocloud.io/mirror#accelerator-doc

修正脚本:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://5403ff34.m.daocloud.io


或者配置阿里的镜像加速器也可以(前提也需要注册阿里云的账户哎):

#您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://etycivjq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


配置工作就完成了,是不是很简单。下面开始一些实例:

docker搭建一个worldpress网站

传统的搭建可能比较费时,先配置MySQL数据库,然后配置Nginx或者Apache,然后下载安装文件,进行安装。老司机的话估计也得半个小时,如果用docker的化,不到十分钟就搞定。

下载worldpress、MySQL镜像

[root@#localhost ~]#  docker pull wordpress:latest
latest: Pulling from library/wordpress
6d827a3ef358: Pull complete
87fe8fbc743a: Pull complete
f6d1a8d304ab: Pull complete
caf3547d9b73: Pull complete
1004db2760ff: Pull complete
66e2d66a547e: Pull complete
bbfaa62c234a: Pull complete
19ce8807f4d1: Pull complete
65dc0142d59b: Pull complete
a95f4fa43ae2: Pull complete
f4edd48c3730: Pull complete
d58fc629c9d1: Pull complete
c75a71ebb7f4: Pull complete
92667bd16dd2: Pull complete
158b965a06fc: Pull complete
cdbb556ec528: Pull complete
79dd5209b5a0: Pull complete
c390e42be10f: Pull complete
Digest: sha256:980dcdf0c66aa863f309f1d2bb618f4981dcb926a43bc0f65f5d2a0c3be81149
Status: Downloaded newer image for wordpress:latest

[root@#localhost ~]# docker pull mysql:latest
latest: Pulling from library/mysql
6d827a3ef358: Already exists
ed0929eb7dfe: Pull complete
03f348dc3b9d: Pull complete
fd337761ca76: Pull complete
7e6cc16d464a: Pull complete
ca3d380bc018: Pull complete
3fe11378d5c0: Pull complete
2b5dfd325645: Pull complete
b54281d17fbe: Pull complete
7eae4db8eea5: Pull complete
76cf68e17b09: Pull complete
Digest: sha256:49b7d6d8d45f8c3300cba056e8cdf36c714d99e0b40f7005b9e6e75e64ecdf7c
Status: Downloaded newer image for mysql:latest


进行配置

#数据库安装配置
[root@#localhost ~]# docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=wordpressdocker -d mysql
a57a3cc492b7df62c3ae84b0297f272408f6a0b25b084c3545a58e49f76f6f45
[root@#localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
a57a3cc492b7        mysql               "docker-entrypoint..."   About a minute ago   Up About a minute   3306/tcp            mysqlwp

#配置WordPress和MySQL的链接,用了docker的--link技术

[root@#localhost ~]# docker run --name wordpress --link mysqlwp:mysql -p 80:80 -d wordpress
81a879a36bd3de6df0427060f06fd710b1cdfd9647992216eec937749d13e968

#查看进程
[root@#localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
81a879a36bd3        wordpress           "docker-entrypoint..."   28 seconds ago      Up 26 seconds       0.0.0.0:80->80/tcp   wordpress
a57a3cc492b7        mysql               "docker-entrypoint..."   2 minutes ago       Up 2 minutes        3306/tcp             mysqlwp

#打开浏览器进行配置


个性化配置

前面安装MySQL的时候用了默认的root用户,生产环境不推荐这样做。下面的例子是创建个性化的数据库。

MySQL

个性安装:

docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=mypass \ #配置root密码
-e MYSQL_DATABASE=mydbname \ #数据库名称
-e MYSQL_USER=mymuser \ #数据库用户
-e MYSQL_PASSWORD=mypass_myuser \ #数据库库用户的密码
-d mysql  #以守护进程的方式进行运行mysql

#将宿主机的文件夹绑定到容器中的文件夹上

docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=mypass \ #配置root密码
-e MYSQL_DATABASE=mydbname \ #数据库名称
-e MYSQL_USER=mymuser \ #数据库用户
-e MYSQL_PASSWORD=mypass_myuser \ #数据库库用户的密码
-v /home/docker/mysql:/var/lib/mysql \ #宿主机的/home/docker/mysql文件夹对应容器中后者文件夹
-d mysql  #以守护进程的方式进行运行mysql


backup:

[root@#localhost ~]# docker exec -it mysqlwp mysqldump --all-databases --password=wordpressdocker > wordpress.backup
[root@#localhost ~]# ll
total 3824
-rw-------. 1 root root    1020 Nov  2 22:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 3907748 Apr  4 15:41 wordpress.backup


WordPress

docker run --name wordpress --link mysqlwp:mysql -p 80:80 \
-e WORDPRESS_DB_NAME=wordpress
-e WORDPRESS_DB_USER=wordpress
-e WORDPRESS_PASSWORD=mypress \
-d wordpress


进阶:利用Docker-Compose 一键安装

Docker-Compose是Docker的一种编排服务,是一个用于在Docker上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。

通过Docker-Compose用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose解决了容器与容器之间如何管理编排的问题。

#创建一个Wordpress应用,首先建立一个应用的目录
$ mkdir wordpress
$ cd wordpress

#创建 docker-compose.yml
$ vim docker-compose.yml
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress

#MySQL的数据目录挂载到当前目录下,./.data/db不存在时会自动创建。

#启动应用
$ docker-compose up -d
Starting wordpress_db_1
Starting wordpress_wordpress_1

#确认启动成功
$ docker-compose ps
675777c33fdb        wordpress:latest    "docker-entrypoint.sh"   About an hour ago   Up About a minute                     0.0.0.0:8000->80/tcp   wordpress_wordpress_1
6edfe3786798        mysql:5.7           "docker-entrypoint.sh"   About an hour ago   Up About a minute                     3306/tcp               wordpress_db_1

#访问应用 http://localhost:8000/[/code] 
参考文档:

/mysql/”>https://hub.docker.com//mysql/

/wordpress/”>https://hub.docker.com//wordpress/

使用Docker-Compose编排容器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker wordpress mysql