5分钟使用Docker搭建Java微服务环境

1.Docker

  • 安装
yum update -y
yum -y install docker
systemctl start docker
  • vi /etc/docker/daemon.json 设置镜像,可以设置你需要的镜像

  • 重启docker

systemctl daemon-reload
systemctl restart docker.service

*检测是否安装完成

docker run hello-world

2. 数据库

MYSQL
1. docker启动
  • mysql 5.7 ,从镜像中拷贝或直接创建my.cnf,取决是否需要挂载映射启动
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
mysql 5.7
docker run -p 3306:3306 \
  --privileged=true \
  -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
  -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=China,789 \
  --name mysql8 mysql:5.7 \
  --character-set-server=utf8 \
  --collation-server=utf8_general_ci
  • mysql 8
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
#skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Custom config should go here
!includedir /etc/mysql/conf.d/

mysql 8 记得要设置时区

docker run -di --name=mysql8 \
-v /home/docker/mysql/data:/var/lib/mysql \
-v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
--privileged=true \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=China,789 mysql:8.0
  • MySQL密码设置没有起作用连接失败解决
#进入容器
docker exec -it mysql /bin/sh
#进入mysql(有可能上面密码设置无效)
mysql -u root -p
#输入123456,如果失败,直接enter
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
#上面的root用户如果是localhost,只能localhost连接,不能远程连接,下面设置密码报错
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
#修改localhost为%
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.14 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
3. Redis

docker run -itd --name redis -p 6379:6379 redis

4.Nacos

待补全

### 8.Harbor
 下载代码 

docker-compose start/stop

 
### 10.Nginx
* 先把配置文件拷贝出来

docker run --name mynginx -d -p 7009:80 -v /home/docker/nginx/html:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /home/docker/nginx/logs:/var/log/nginx nginx


### 11. Docker空间占用过高问题解决
几个查询命令
du -sh * 
df -h 查询系统空间占用情况 
docker system df -v 查看Docker内容器,镜像占用情况

* 根据情况 占有,来分析是哪里的问

如果是镜像 none , tag none则为悬空镜像,打包的时候没有用 -t的原因, 可以清空 ,手动清空:
  • 删除所有悬空镜像,但不会删除未使用镜像:
    docker rmi $(docker images -f “dangling=true” -q)

  • 删除所有未使用镜像和悬空镜像。

  • 【说明】:轮询到还在被使用的镜像时,会有类似"image is being used by xxx container"的告警信息,所以相关镜像不会被删除,忽略即可。
    docker rmi $(docker images-q)

如果是容器占用空间大,则需要进入容器,看是哪里的问题,自动清理命令:docker system prune 只会清理,未关联的镜像等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值