Docker 搭建开发环境

Docker 搭建开发环境

有一个 Python2 项目,依赖 RabbitMQ、Redis、MySQL
RabbitMQ 的安装繁琐,并且自身还需要安装其他依赖
项目本身还使用了几个图形库,在不同的开发环境(Win、Mac、Linux)下依赖包是有差别的
我的开发环境是 Windows,搭建这样一套环境十分麻烦,如果使用 Docker 就会方便许多。

Docker MySQL

获取镜像

docker pull mysql:5.6

启动容器,密码 123456,映射 3306 端口

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

进入容器,创建远程访问用户

docker exec -it <容器> /bin/bash

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

Docker Redis

拉取镜像

docker pull redis:5.0

启动容器,映射端口 6379

docker run -p 6379:6379 -d --name redis-5.0 redis:5.0

Docker RabbitMQ

拉取镜像

docker pull rabbitmq

启动容器,端口会自动映射
hostname 是容器的主机名称

docker run -d --hostname my-rabbit --name rabbitmq rabbitmq:latest

进入容器,可以查看 RabbitMQ 状态

docker exec -it <容器> /bin/bash
rabbitmqctl status

Docker Python2.7

各种依赖已经安装完毕,现在搭建 Python 的运行环境
拉取镜像

docker pull python:2.7

启动容器
-p 8000:8000 映射端口,是项目的访问端口
-v ~/workspace:/root/workspace 把 home 目录下的 workspace 目录,映射到 /root/workspace 目录,这个目录下是代码
--privileged=true 解决 docker 内目录无权限访问问题
--link mysql:mysqldb 有三个 link 参数,以 mysql 为例,意思是创建 mysql 的 host 映射,名称为 mysqldb,也就是说可以通过 ping mysqldb ,访问 mysql 容器

docker run -itd -p 8000:8000 -v ~/workspace:/root/workspace --privileged=true --link mysql:mysqldb --link redis-5.0:redisdb --link rabbitmq:rabbitmq --name dev_docker  python:2.7

需要说明,这是个 django 项目,下面的启动方式只能在 docker 内部访问
因为默认监听的是 localhost,只监控本机请求

python manage.py runserver 8000

以下命令就可以在外部访问了

python manage.py runserver 0.0.0.0:8000

猜你喜欢

转载自www.cnblogs.com/eoalfj/p/10968965.html