docker 初探 读书笔记 《docker 经典实例》
安装
因为众所周知的原因,在国内访问某些网站的时候体验非常不好,所以docker安装源建议采用本地的安装包。daocloud.io这个公司做了dockerhub的镜像。
安装脚本:
curl -sSL https://get.daocloud.io/docker | sh
修改镜像源
这儿比较麻烦的是,需要从上面的那个网站注册一个账号,才能获得一个加速地址
参加网站:https://daocloud.io/mirror#accelerator-doc
修正脚本:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s 5403ff34.m.daocloud.io
配置工作就完成了,是不是很简单。下面开始一些实例:
docker搭建一个worldpress网站
传统的搭建可能比较费时,先配置MySQL数据库,然后配置Nginx或者Apache,然后下载安装文件,进行安装。老司机的话估计也得半个小时,如果用docker的化,不到十分钟就搞定。
下载worldpress、MySQL镜像
#数据库安装配置[root@#localhost ~]# docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=wordpressdocker -d mysqla57a3cc492b7df62c3ae84b0297f272408f6a0b25b084c3545a58e49f76f6f45[root@#localhost ~]# docker psConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESa57a3cc492b7 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 wordpress81a879a36bd3de6df0427060f06fd710b1cdfd9647992216eec937749d13e968#查看进程[root@#localhost ~]# docker psConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES81a879a36bd3 wordpress "docker-entrypoint..." 28 seconds ago Up 26 seconds 0.0.0.0:80->80/tcp wordpressa57a3cc492b7 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 ~]# lltotal 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