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配置工作就完成了,是不是很简单。下面开始一些实例:
传统的搭建可能比较费时,先配置MySQL数据库,然后配置Nginx或者Apache,然后下载安装文件,进行安装。老司机的话估计也得半个小时,如果用docker的化,不到十分钟就搞定。
前面安装MySQL的时候用了默认的root用户,生产环境不推荐这样做。下面的例子是创建个性化的数据库。
个性安装:
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 #以守护进程的方式进行运行mysqlbackup:
[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.backupDocker-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编排容器