docker部署常用软件
1.docker部署mysql
搜索镜像
docker search mysql
拉取镜像
docker pull mysql:5.6
配置MySQL忽略大小写
# 创建MySQL配置的文件夹
mkdir -p /root/mysql
# 编辑my.cnf配置文件
vi /root/mysql/my.cnf
#my.cnf添加如下配置
[mysqld] lower_case_table_names=1
创建容器,设置端口映射和目录映射
docker run -id \
-p 3306:3306 \
--name=mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/logs \
-v /root/mysql:/etc/mysql/mysql.conf.d \
-e MYSQL_ROOT_PASSWORD=111111 \
mysql:5.6
参数解释
- -d:是指容器后台运行,如果不加 -d ,当用户断开客户端时容器会结束运行
- -p:将容器的3306端口映射到主机的3306端口,用来暴漏端口的
- -v:这个命令是用来挂载目录的,将本地目录挂载到容器中,这样容器操作的就是本地目录
- -e:这个命令是配置环境参数的,这里 MYSQL_ROOT_PASSWORD=123456 指的是用root用户运行mysql,可以登录Docker容器通过 ENV 命令查看
- --name:这个命令是配置Mysql的容器名称,如果不配置,默认是随机生成的名字
查看MySQL运行日志 docker logs -f mysql
启动成功后,可通过navicat连接,检查配置的大小写参数是否生效
SHOW VARIABLES LIKE '%case_table%';
下载并导入数据
到测试数据官网[https://launchpad.net/test-db/+download] 下载数据库文件
![image](https://img2022.cnblogs.com/blog/2090034/202208/2090034-20220811170052012-269452413.png)
直接导入无法导入,需要编辑 employees.sql 文件的一些地方
- set storage_engine = InnoDB; 修改为: set default_storage_engine = InnoDB;
- select CONCAT('storage engine: ', @@storage_engine) as INFO; 修改为: select CONCAT('storage engine: ', @@default_storage_engine) as INFO;
下载解压后,在本地执行命令导入到mysql服务器
1)将employees_db目录下的sql文件上传到/opt/docker/data/mysql/挂载目录下,
2)进入docker容器,
[root@linux30 mysql]# docker exec -it mysql /bin/bash
3)在/var/lib/mysql目录下执行导入命令
root@24d27c3d7ae0:/var/lib/mysql# mysql -uroot -p123456 < employees.sql
在登陆客户端就能看到数据库以及表了
2.docker部署tomcat
1.搜索tomcat镜像
docker search tomcat
2.拉取tomcat镜像
docker pul1 tompat
- 创建容器,设置端口映射、目录映射
在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-P 8080:8080 \
-V $PWD:/usr/local/tomcat/webapps \
tomcat
3.docker部署redis
- 搜索redis镜像
docker search redis
- 拉取redis镜像
docker pull redis: 5.0
3.创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
- 使用外部机器连接redis
redis-cli.exe -h 192.168.149.135 -p 6379
4.docker部署nginx
1.搜索nginx镜像
docker search nginx
- 拉取nginx镜像
docker pull nginx
- 创建容器,设置端口映射、目录映射
#在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
#在~/nginx/conf/下创建nginx.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 '$rmote_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;
}
#nginx.conf文件需要提前准备好
docker run -id --name=c_nginx \
-p 80:80 \
-V $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/1og/nginx \
-v $PWD /html:/usr/share/nginx/html \
nginx
4.docker部署nacos
配置conf下application.properties文件中docker启动的mysql信息,mysql地址ip要使用docker中的ip,查看方式docker inspect mysql。
docker pull nacos/nacos-server:v2.1.1
Mkdir -p /usr/local/nacos/conf
Mkdir -p /usr/local/nacos/init.d
docker run -id --name=nacos -p 8848:8848 -v /usr/local/nacos/conf:/home/nacos/conf -v /usr/local/nacos/init.d/:/home/nacos/init.d/ nacos/nacos-server:v2.1.1
本文来自博客园,作者:bgtong,转载请注明原文链接:https://www.cnblogs.com/bgtong/p/16570484.html