VMware介绍
Docker是一个开源应用容器引擎,类似于虚拟机,Go语言编写。可以打包应用依赖到一个可移植的容器中。
可以利用 Docker 的方法来快速交付,测试和部署代码。
Centos Linux安装Docker
直接:
1 | yum -y install docker-io |
或者:
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装依赖 |
在编辑好的yml目录中执行启动关闭项目
1 | docker-compose up |
镜像加速
1 | https://cr.console.aliyun.com # 注册阿里云,选择镜像中心,镜像加速 |
错误
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running
Docker未启动,执行命令:service docker start
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-3cf202aa8f9b -j RETURN: iptables: No chain/target/match by that name.
关闭防火墙需要重启docker,执行命令:service docker restart
tcp 47.107.215.73:443: i/o timeout
可能原因:网络不通,url地址拼写错误
常用命令
docker ps
查看启动的容器docker exec -it id(name) /bin/bash
进入容器,如果出错用把/bin/bash
改成/bin/sh
docker安装MySQL
数据库不适合部署在docker中。
- 拉取官方镜像(使用5.7版本)
1
2docker pull mysql:5.7 # 拉取5.7版本,我们使用5.7版本,容器内目录/var/lib/mysql
docker pull mysql # 拉取最新版本 - 查看镜像
1
sudo docker images
- 启动方式一,不建立目录映射
1
sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
- -name:容器名
- -e:配置信息
- -p:端口映射, 主机端口:容器端口
- 启动方式二,建立目录映射
1
2
3
4
5
6sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7- -v: 主机目录:容器目录
- 查看docker进程
1
docker ps
- 重启mysql,删除容器,启动出错,重复启动用得上
1
2docker restart mysql
docker rm ba7ef3e4ba975474b67c0f9126f07a4d88140e569323a77800aab8624361d67d # 谨慎使用会丢失容器数据 - 进入docker
1
2sudo docker exec -it mysql bash
mysql -uroot -proot - 查看或者设置外部访问权限
1
2
3
4
5
6
7
8
9
10
11
12
13use mysql;
grant all privileges on *.* to root@'%' identified by "root"; # 授权访问
flush privileges;
select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec) - 通过win Navicat等工具尝试访问
docker安装redis
1 | docker run -itd --name redis-test -p 6379:6379 redis # 第一次启动 |
cli
1 | redis-cli |
docker安装ElasticSearch
问题修复
org.elasticsearch.indices.recovery.RecoveryFailedException...Recovery failed from...
简单修复:删除data目录与logs目录