docker安装单个nginx,挂载目录,映射端口
下载
docker pull nginx
创建
docker create -it --name n3-itpv -p 10000:80 -v /n3/:/n3 nginx
说明 10000为主机端口 80为nginx容器内端口
启动
docker start n2-it
docker start n2
进入容器
docker exec -it cf /bin/bash
docker内默认 nginx文件位置
日志目录 : /var/log/nginx
配置目录 : /etc/nginx/conf.d/default.conf
主配置文 : /etc/nginx/nginx.conf
项目目录 : /usr/share/nginx/html nginx
日志目录 : /var/run/nginx.pid
容器内安装vim
apt-get update
apt-get install vim
apt-get update是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包
有问题解决update慢
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
#更新安装源
apt-get update
修该nginx配置
修改nginx.conf 指定挂载目录为root目录
修改nginx.conf 指定日志目录为挂载目录
重启容器
docker stop id ,docker start id或docker restart id
即可在宿主机目录添加文件 同步到nginx 的 root目录
即可在宿主机目查看nginx运行日志
问题 修改容器内的nginx.conf 设置主目录无效
解决 修改或删除/etc/nginx/conf.d/default.conf
docker安装redis,容器互联
创建 redis-db容器
docker create -it --name redis-db -p 10003:6379 redis
创建 redis-link容器
docker create -P --name redis-db-link1 --link redis-db:l1 redis
redis-link安装ping
apt-get update
apt install iputils-ping
在redis-link容器即可访问redis-db容器
ping redis-db
ping id
ping linkname
修改/etc/hosts文件也可实现互联?
docker安装mongodb单节点,挂载
docker pull mongo:latest
mkdir -p /mongo/{mongo_test/{data,conf,log},mongo_01/{data,conf,log}}
创建mongo.conf
(配置表1)
docker create -it --name mo2 -p 20004:27017 -v /mongo/mongo_01/data:/data/db -v /mongo/mongo_01/conf:/conf -v /mongo/mongo_01/log:/log mongo -f /conf/mongo.conf
docker create -it --name m2 -p 20002:27017 mongo --auth
-auth:需要密码才能访问容器服务
docker start xx
docker exec -it xx /bin/bash
docker exec -it mongo mongo admin
添加用户
use admin
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
测试
db.auth('admin', '123456')
docker安装python环境
下载
docker pull python:3.7.4
创建
docker create -it -v /py1:/py1 --name py37-3 python:3.7.4
启动
docker start xxx
进入容器
docker exec -it cf /bin/bash
容器内可执行
python ./py1/a.py
pip install…
docker安装mysql单机,挂载数据库文件到本地 详细文档
docker mysql8 默认文件位置
#/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
#数据文件 /var/lib/mysql/
在宿主机创建存放mysql数据的文件夹
mkdir -p /mysql
下载mysql镜像,默认下载mysql8最新版
docker pull mysql
创建mysql容器
docker create -p 10008:3306 --restart=always --name mysql8 -v /mysql/mysql_08/log:/var/log/mysql -v /mysql/mysql_08/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=xxx -it mysql
#-p 10008:3306 指定映射容器的3306到宿主机的10008
#--restart=always #自动重启或启动
#--name mysql8 #指定容器名称
#-v /mysql/mysql_08/log:/var/log/mysql #挂载目录
#-v /mysql/mysql_08/data:/var/lib/mysql
#-v /etc/localtime:/etc/localtime
#-e MYSQL_ROOT_PASSWORD=qwedwqtyu67 #自定义mysql root初始密码
#-it mysql 指定使用的镜像
启动mysql容器
docekr start mysql8
进入mysql容器
docker exec -it mysql8 /bin/bash
在mysql容器内执行
mysql -uroot -p
#连接
mysql> GRANT ALL ON *.* TO 'root'@'%';
#开启远程访问权限
mysql> flush privileges;
#刷新配置,即可生效设置
退出mysql容器
#退出操作:ctrl+d
mkdir -p mysql_08m/{data,log,mysql-files}
设置宿主机防火墙firewalld打开端口 mkdir -p mysql_08s/{data,log,mysql-files}
打开防火墙
systemctl start firewalld
添加端口
firewall-cmd --zone=public --add-port=10008/tcp --permanent
重载防火墙配置
firewall-cmd --reload
检查端口开放情况
firewall-cmd --list-ports
使用远程连接工具测试 连接mysql