我正在开发一个平均堆栈应用程序(运行angular 6,而不是angular js)。我被要求对其进行dockerise,并且由于我不是Docker的专家,所以我想知道什么是最佳选择: -创建单独的容器,一个用于数据库,express app和angular app -将整个堆栈部署在单个容器中
答案 0 :(得分:1)
运行单独的容器是通过docker-compose进行操作的方法,因此您只需一个命令即可启动所有必需的容器
简单教程:https://codereviewvideos.com/course/docker-tutorial-for-beginners/video/docker-compose-tutorial
答案 1 :(得分:1)
让我建议您为每个应用程序使用一个容器:
此外,为每个文件定义一个Dockerfile,您可以定义一个docker-compose.yml
,该文件可以构建和部署所有文件。
最后,在此docker-compose文件中,您可以安装卷以存储外部容器的数据库数据(例如:对于mysql db的/ var / lib / mysql),因为当容器退出时,所有容器启动中的新信息都会丢失。
管理和定义一些用于数据库参数的ARGS / ENV。
docker-compose.yml示例:
version: '3.6'
services:
mysql:
container_name: your_db_container
restart: always
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
MYSQL_USER: 'test'
MYSQL_PASS: 'pass'
volumes:
- /tmp/your_db_dir:/var/lib/mysql
ports:
- "3306:3306"
your_app:
build:
context: ./your_folder_dockerfile
dockerfile: Dockerfile_app
...
angular_serv:
image: angular-cli-docker-ootb:latest
...