前记
今天搞了一天的docker,终于成功了,也是搞docker这么多年来,最清醒的一次,车热打铁,先记录一下遇到了什么问题
每次写下问题,发现问题根本不是问题 :(
过程中遇到的问题
-
俩个独立的 docker-compose 其实也就是容器,之前的通信问题
可以新建一个network去解决
我这里采用了将俩个项目写到一个compose中,会默认公用一个network,在这里我也新建了个。
-
过程中,对于 Dockerfile image docker-compose container 等概念的不清晰
他们的关系:Dockerfile -》 image … imageN ==> docker-compose ==> container
-
命令的不熟悉
根据Dockerfile生成镜像
docker build –rm -t image-name .
运行镜像
docker run -itd –name container-name –restart always -v… image-name:version
根据compose生成镜像
docker-compose build –build-arg key=value
运行compose 【后台+重新编译镜像+可以指定用镜像还是Dokerfile】
docker-compose up -build -d
查看日志
docker logs -f container-name
docker-compose logs -f
-
docker - MySQL主从搭建 ==> 容器间的通信
其实就是建立俩个MySQL容器,然后再去简单配置一下,就好了,但是我这里因为是之间在Mac上装的,相当于是一台主机上用docker建立了主从。在配置从库的时候,需要配置主库的IP和端口。其实这里和springboot项目连接MySQL的时候一样,通过compose公用的网络,直接访问容器名称或者service名称可以访问到对应的容器服务。还有一点就是俩个MySQL装到一台主机要把serverId变掉。在一点就是,容器之间的访问端口:直接访问容器内的端口,而不是宿主机的端口