# docker 初探01-安装MySQL和wordpress

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/

参考文档:

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

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

使用Docker-Compose编排容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贤时间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值