又折腾了好久才部署上去,不偷懒,记下来。
1. 在EC2的安全组里设置入站、出站的端口、ip、协议等,确保实例应用了新添加的安全组规则
2. 启动数据库container, 命名为db
sudo docker run --name db mongo
3. 根据Dockerfile,生成网站的image
sudo docker build -t web_image .
-t 设置这个image的名字
4. 启动web container
sudo docker run -d --name web -p 80:8000 --link db:mongo web_image
-d 表示后台运行,换成-it则进入interactive模式
-p 端口映射
--link 连接web和db这两个container,注意这里是db:mongo,所以connectionUrl需要是mongodb://mongo:27017/dbName
==================== UPDATES ==========================
When it comes to mysql image
sudo docker pull mysql
Must specify an initial root password. Since containers are isolated, if you want to have access to files (e.g. sql scripts) outside the container, you need to mount them.
sudo docker run --name my_sql_container -e MYSQL_ROOT_PASSWORD=my_initial_password --mount type=bind,source="$(pwd)",target=/data -d mysql
Then you can access files under the current directory through /data in this container.
And again, in the code where db connection is created, use 'mysql' as the host name, NOT 'localhost'.
export database into sql file
mysqldump -u root -p db_name > file_name.sql
run sql script to populate database (in mysql), make sure you have created the database and used it.
source file_name.sql