Step-by-step comparison of two deployment methods in docker
Conclusion: the methods are almost comparable, but the stack is more convenient and functional, regardless of the dependence on the swarm.
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- chmod a+x /usr/local/bin/docker-compose
- mkdir -p /mnt/hdd/mariadb
- docker swarm init
- docker network create --attachable --driver overlay common_backend
- docker stack deploy --compose-file ./compose.yaml iot-broker
- docker run -it --rm --net common_backend mariadb:10.4 mysql -htasks.iot-broker_mysql -uroot -p -e 'select Host, User from mysql.user;'
+-----------+------+
| Host | User |
+-----------+------+
| % | root |
| localhost | root |
+-----------+------+
- docker network create --attachable --driver bridge common_backend
- rm -fr /mnt/hdd/mariadb/etc && cp -fr ./mysql /mnt/hdd/mariadb/etc
- docker-compose -f ./compose.yaml -p iot-broker up -d
- docker run -it --rm --net common_backend mariadb:10.4 mysql -hdatabase -uroot -p -e 'select Host, User from mysql.user;'
+-----------+------+
| Host | User |
+-----------+------+
| % | root |
| localhost | root |
+-----------+------+