Docker (3) 使用docker 安装mysql、tomcat、ngnix、redis
mysql部署
由于外部机器无法直接访问容器端口,但是可以访问到宿主机(服务器),所以需要做一个端口映射 3307(服务器的端口) 映射到容器的端口3306
docker serach mysql docker pull mysql:5.6 docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.6 f83a2938370c 10 months ago 452MB mkdir /root/mysql cd /root/mysql docker run -id -p 3307:3306 --name=c_mysql --privileged=true -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
--privileged=true 因为Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示如下信息mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)
-p 3307:3306 见上图,将linux服务器端口与容器3306端口关联 一般3306:3306
$PWD 就是linux中的pwd 输出的当前地址拼接 因为当前地址是/root/mysql 所以以下拼接上开头
-v $PWD/conf:/etc/mysql/conf.d 将主机当前目录下的conf/my.conf挂载到容器的/etc/mysql/my.cnf 配置目录
-v $PWD/logs:/logs 将主机当前目录下的logs目录 挂载到容器的logs 日志目录
-v $PWD/data:/var/lib/mysql 将主机当前目录下的data目录挂载到容器的/var/lib/mysql 数据目录
-e MYSQL_ROOT_PASSWORD=123456 初始化root密码
进入容器
docker exec -it c_mysql /bin/bash
登录mysql
mysql -u root -p
使用外部服务器连接mysql
tomcat部署
docker search tomcat docker pull tomcat mkdir /root/tomcat cd /root/tomcat
\是换行 为了显示更清晰
docker run -id --name=c_tomcat \ --privileged=true \ -p 8080:8080 \ -v $PWD:/usr/local/tomcat/webapps \ tomcat
centos7都要加上--privileged=true 否则无法挂载成功没有权限
-p 8080:8080 端口映射 宿主机和容器的端口绑定
-v $PWD:/usr/local/tomcat/webapps 将主机当前目录挂载到容器的webapps 当前目录就是/root/tomcat
nginx部署
docker pull nginx
mkdir ~/nginx --~是/root的意思简写
cd ~/nginx
mkdir conf
cd conf
vim nginx.conf
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
cd.. docker run -id --name=c_nginx --privileged=true -p 80:80 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -v $PWD/html:/usr/share/nginx/html nginx
-id 后台运行 --name 起名字 --privileged centos7安全限制 -p 80:80 端口映射 nginx.conf 配置文件挂载 logs 日志文件挂载 html 项目部署目录挂载
浏览器访问 http://10.211.55.4/ 出现403
cd html vim index.html <h1>nginx</h1> :wq
刷新页面 部署完毕
redis部署
docker pull redis:5.0 docker run -id --name=c_redis -p 6379:6379 redis:5.0
rdm链接测试
链接成功!