作为开发人员如果你不用Docker,我觉得你有点过分了!随着容器技术的迅速发展,不会点Docker都不好意思跟人家说我的身份是假冒伪劣的码农!
确实现在好多公司都在用Docker部署服务,真的方便。而且DevOps这种开发模式越来越盛行!所以我决定进军一下Docker,其实作为开发人员我觉得也没必要掌握的很精通,会用就行了!也就是几个命令的事!
那就从最简单的安装服务开始吧(怎么搜索镜像、拉取镜像就不写了 So Easy !):
-
进入容器内部:
sudo docker exec -it dc6c3f09cb9a /bin/bash
-
退出容器:
exit
-
使用docker构建主从mysql
-
mysql-master
docker run -p 3306:3306 --name mysql -v /sqt/docker/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d 1e4405fe1ea9
-
mysql-slave
docker run -p 3307:3306 --name mysql_slave -v /sqt/docker/mysql_slave_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d 1e4405fe1ea9
-
-
docker安装redis
- 构建容器
docker run -d --privileged=true -p 6379:6379 -v /sqt/docker/redis/config/redis.conf:/etc/redis/redis.conf -v /sqt/docker/redis/data:/data --name redis docker.io/redis:latest redis-server /etc/redis/redis.conf --appendonly yes --requirepass "123456"
- 下载redis.conf 配置文件:(redis官网有,网上搜索也有模板)
下载redis.conf 配置文件: bind 127.0.0.1 #注释掉这部分 protected-mode no #默认yes表示开启保护模式,用来限制redis只能本地访问 daemonize no #注释掉这部分
- 命令注释
-p 6379:6379 ##端口映射,:前表示主机部分,:后表示容器部分。 --name redis ##指定容器名称,查看和进行操作都比较方便。 -v /sqt/docker/redis/data/redis:/data ##将主机中/opt/data/redis目录下的redis挂载到容器的/data -v /sqt/docker/redis/config/redis.conf:/etc/redis/redis.conf ##将主机中redis.conf配置文件挂载到容器的/etc/redis/redis.conf文件中 -d redis 表示后台启动redis redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/sqt/docker/redis/config/redis.conf --appendonly yes 开启redis 持久化
- 登入容器内部Redis:
docker exec -it dc6c3f09cb9a redis-cli -h localhost -p 6379 auth 123456
-
docker 安装ngnix
-
docker run --name nginx -d -p 80:80 -v /home/sqt/docker/nginx/html:/usr/share/nginx/html -v /home/sqt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/sqt/docker/nginx/logs:/var/log/nginx c7460dfcab50
-
-
docker安装mysql迁移数据data时 报错:
Access denied for user ‘root’@’localhost’ (using password: YES)”
-
进入容器:
docker exec -it d2d24bd34fb bin/bash
-
在 /usr/local/mysql/conf.d目录下增加文件: my.cnf(如果有该文件则不需要新建)
-
在 my.cnf 文件中添加一下内容:(没有 vi 或者 vim 命令 看第 4步)
[mysqld] skip-grant-tables
-
可能容器内部没有 vi 或者 vim 命令,使用 echo 命令追加(这是我能想到)。
echo [mysqld] >> my.cnf echo skip-grant-tables >> my.cnf
-
重启容器。使用idea链接mysql成功!
-