docker pull redis:latest
docker images
在上图中可以看到我们已经安装了最新版本的 redis 镜像。
docker run -d -p 6379:6379 --name redis -v /usr/local/redis/data:/data redis --appendonly yes
命令分析
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–name redis 指定该容器名称。
-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。
-d 表示后台启动redis
redis 镜像名
–appendonly yes 开启redis 持久化
–requirepass 123456789 设置密码为123456789
MySQL
镜像docker pull mysql:latest
docker images
docker run -p 3306:3306 --name mysql -v /usr/local/mysql/data:/var/lib/mysql/ -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql --lower-case-table-names=1
参数说明:
-d
:后台运行容器-p
:端口映射,格式为主机端口:容器端口
-e
:设置环境变量,这里设置的是root
密码--name
:设置容器别名运行之后会返回一个容器ID
。
docker container ls
docker inspect 3cda6193a1bd
docker exec -it 3cda6193a1bd bash
进入后执行ls,就可以看到,容器内部的目录结构了
密码为root,点击测试连接。
ruoyi-admin
的 target
下生成了一个 jar 包将dockerrfile文件和default.conf,放在服务器上
Dockerfile文件
FROM nginx
USER root
ADD default.conf /etc/nginx/conf.d
ADD dist /usr/share/nginx/html/
RUN chmod 775 -R /usr/share/nginx/html
expose 80
default.conf
server {
listen 80;
server_name localhost; # 可以用服务器ip代替
location / {
root /usr/share/nginx/html/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_pass http://172.17.0.5:8080/; # 转发规则
proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
构建镜像
docker build -t nginx:v .
构建后,通过docker images,可以查看到构建的镜像
注:
nginx:v(镜像名称:镜像标签)
最后的 . 代表本次执行的上下文路径
示例:
运行镜像
docker run -p 80:80 --name myNginx -d 4737f6039596
运行后通过通过docker ps查看运行中的容器
示例:
如果运行失败,可以查看日志排查原因
docker logs [ID或者名字] 可以查看容器内部的标准输出。
docker logs -f a3b7568dc10b
注:-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
示例:
通过浏览器访问
这里后端还没有部署,所以验证码没有出来
将dockerrfile文件和ruoyi-admin.jar,放在服务器上
Dockerfile
FROM java:8
ADD ruoyi-admin.jar ruoyi-admin.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]
构建镜像
docker build -t ruoyi-admin .
运行镜像
docker run -d -p 8080:8080 --name ruoyi-admin ruoyi-admin
运行成功后,查看运行中的容器
接着我们刷新,就可以看到验证码了。