实用工具Docker-Compose的介绍与安装
docker-compose:是一个用于定义和运行多容器 Docker 的应用程序工具,可以帮助我们可以轻松、高效的管理容器
compose的安装
检查有没有python环境: pyhton -v
安装pip工具
yum install -y epel-release //报错,下面有解决办法
yum install -y python-pip
安装docker-compose:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose==1.24.1
查看docker-compose版本:docker-compose version
安装pip报错解决:解决: vi /etc/yum.repos.d/epel.repo 修改配置文件,注释掉metalink ,取消注释 baseurl
[root@localhost yum.repos.d]# yum install python-pip -y
已加载插件:fastestmirror
One of the configured repositories failed (未知), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work).
3. Disable the repository, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid>
4. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
修改前:
修改后:
Docker-Compose的快速上手
一定要进入配置文件目录:mkdir -p /usr/local/docker-compose/test
编写一个最最简单的yml: 在上面创建的test目录下,编写文件 vi docker-compose.yml
version: '3' //yml版本号
services:
redis: // 服务名字
image: mycentos:redis //要操作的容器,镜像名字:标签
compose操作容器(一定要进入配置文件目录 : test目录)
- 后台启动容器:docker-compose up -d
- 查看容器运行情况:docker-compose ps
- 停止并删除容器:docker-compose down
- 停止并删除容器并删除volume:docker-compose down --volumes
- 停止启动容器:docker-compose stop;docker-compose start
- docker-compose exec的使用:docker-compose exec redis bash //服务名字
总结:
- 操作docker-compose一定要在配置文件docker-compose.yml文件路径下操作
- 格式一定要注意,该空格要空格
Docker-Compose核实用技能
docker-compose.yml的三大部分:version,services,networks,最关键是services和networks两个部分
- compose设置网络模式
- compose使用端口映射
- compose设置文件共享
- compose管理多个容器
docker-compose.yml
version: '3'
services:
nginx:
image: mycentos:nginx
network_mode: "host"
volumes:
- /home:/usr/local/nginx/html
- /var/logs/nginx/logs:/usr/local/nginx/logs
command: /usr/local/nginx/sbin/nginx -g "daemon off;"
redis:
image: mycentos:redis
ports:
- "6380:6379"
Docker-Compose快速搭建个人博客 wordpress
官网:https://docs.docker.com/compose/wordpress/
mkdir -p /usr/local/docker-compose/wordpress
在wordpress 目录下创建 cat >docker-compose.yml:wordpress免费的博客平台
version: '3.3'
services:
db:
image: mysql:5.7 #docker run -itd mysql:5.7
volumes:
- db_data:/var/lib/mysql #采用的是卷标的形式挂载(注意:- db_data是参数,可以变,自定义,必须与下面对应)
restart: always #自动重启,保证服务在线
environment:
MYSQL_ROOT_PASSWORD: somewordpress #指定环境变量 docker -itd -e
MYSQL_ROOT_PASSWORD= somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db # - db 是参数,合起来的意思是只有当上面的mysql数据库安装成功后,这个wordpress才可以被安装,还有一个功能,就是docker --link 将上面的mysql数据库,与这个wordpress应用连起来
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
启动wordpress:docker-compose up -d
打开浏览器访问:IP:8000
进行安装配置
将删除容器和默认网络,但会保留WordPress数据库: docker-compose down
将删除容器,默认网络和WordPress数据库: docker-compose down --volumes
docker-compose中有两种方式可以设置volumes
使用具体路径直接挂载到本地,特点就是直观
使用卷标的形式,特点就是简洁,但是不知道数据到底在本地的什么位置。需要通过卷标查看
docker volume ls
docker volume inspect wordpress_db_data