一、MySQL容器
拉取步骤
这里我们拉取官方的镜像,标签为5.7 docker pull mysql:5.7 使用mysql镜像运行容器 docker run -p 3306:3306 --name mymysql -v $PWD/MySQL/conf.d:/etc/mysql/conf.d \ -v $PWD/MySQL/logs:/logs \ -v $PWD/MySQL/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 命令说明: -p 3306:3306:将容器的3306端口映射到主机的3306端口 -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码 查看容器启动情况 docker ps -a
安装成功后进入数据库操作
④进入容器 docker exec -it 容器id或名称 /bin/bash 注:容器开启的状态下 cd /root/ 切换到容器的家目录下,ls可以查看是否有sql文件 ⑤连接数据库 mysql -uroot –p密码 如:mysql -uroot –ppassword ⑥创建库 create database tesudrm charset=utf8; show databases; 查看库是否创建成功 ⑦注意:导入文件需要在容器的内部,而不是在数据库mysql中执行 退出mysql:Ctrl+D cd /root/ 切换到容器的家目录下面执行导入sql文件 mysql -uroot -ppassword tesudrm< tesudrm.sql 进入到数据库中:mysql –uroot –ppassword use tesudrm; show tables; ⑧退出mysql以及mysql容器 Ctrl+P+Q 或 exit
二、Centos7安装python应用
1.1 建立Dockerfile
vim Dockerfile
FROM centos/python-36-centos7 MAINTAINER bobby USER root ADD hello.py /home/ #一个简单的flask程序,将当前目录下的py文件添加到容器的/home下 ADD hello.ini /home/ #uwsgi配置文件 ADD entry-point.sh /home/ #shell脚本 WORKDIR /home # 下载程序安装包 RUN pip install flask -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com RUN pip install uwsgi -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com RUN pip install flask_sqlalchemy -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com RUN pip install pymysql -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com # 或者 RUN pip install -r requirements.txt ENTRYPOINT [ "/bin/bash", "/home/entry-point.sh"] #ENTRYPOINT uwsgi --ini /home/hello.ini #CMD ["uwsgi","--ini", "/home/hello.ini"] #启动uwsgi
vim entry-point.sh #启动文件
if [ -e /debug1 ]; then echo "Running app in debug mode!" python /home/hello.ini else echo "Running app in production mode!" uwsgi --ini /home/hello.ini tail -f /home/hello.ini fi
vim hello.ini #uwsgi配置文件
[uwsgi] # htmlWeb.py文件所在目录 #plugins = python3 chdir = /home callable = app # flask文件名 wsgi-file= hello.py # 进程数 processes = 4 # 使用5000端口 http = 0.0.0.0:5000 # 日志输出目录 #daemonize = /home/hello.log pidfile = /home/project-master.pid