docker安装mysql、nginx、redis、自建docker(Dockerfile )

您所在的位置:网站首页 dockerfile挂载 docker安装mysql、nginx、redis、自建docker(Dockerfile )

docker安装mysql、nginx、redis、自建docker(Dockerfile )

2023-07-28 04:41| 来源: 网络整理| 查看: 265

Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

本文介绍记录了docker安装mysql、nginx、redis、自建docker(Dockerfile ) docker安装mysql docker下载官方镜像 docker pull mysql:5.7

          拉取完后可用docker images查看,如下图。

    2. 创建mysql:5.7容器(使用mysql镜像,运行容器)

docker run --name mysql -p 3306:3306 -v /home/data/mysql/data:/var/lib/mysql -v /home/data/mysql/logs:/logs -v /home/data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

前提:运行前请将my.cnf文件放入你的目录中,我就创建了my.cnf里面插入了

[mysqld] skip-name-resolve

命令解释($PWD是你要存放的目录,我的是/home/data/mysql):

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /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 用户的密码。

3. 安装成功后可操作数据库

使用如下命令连接上mysql(这个a444592a1940是上一步的容器di)

docker exec -it a444592a1940 /bin/bash

此时你的mysql就安装成功了。

 

docker安装nginx

    1.docker下载官方镜像

docker pull nginx

  

   2. 创建需要挂载的目录

mkdir -p /home/data/nginx/{conf,conf.d,html,logs}

  3.先要有配置文件才能启动容器

   vim /home/data/nginx/conf/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; client_body_buffer_size 10m; client_max_body_size 10m; proxy_headers_hash_max_size 51200; proxy_headers_hash_bucket_size 6400; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 128k; fastcgi_buffers 4 128k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; #gzip on; include /etc/nginx/conf.d/*.conf; }

vim /home/data/nginx/conf.d/default.conf

server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } location /api/ { proxy_pass http://127.0.0.1:8080/; } location /fileUpload/ { alias /usr/share/nginx/html/fileUpload/; autoindex on; } location = /50x.html { root /usr/share/nginx/html; } }

4.创建nginx容器,启动挂载:

docker run --name nginx -d -p 80:80 -v /home/data/nginx/html:/usr/share/nginx/html -v /home/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/data/nginx/conf.d:/etc/nginx/conf.d -v /home/data/nginx/logs:/var/log/nginx nginx

#开机自启动设置 docker update redis--restart=always

命令就不一一说明了,类似上面的mysql

5.网页访问nginx

 

docker安装redis

    1.docker下载官方镜像

docker pull redis

   

2.创建redis容器,启动挂载

docker run -d --name redis -p 6379:6379 -v /home/data/redis/data:/data -v /home/data/redis/redis.conf:/usr/local/etc/redis/redis.conf redis --requirepass "12345678"

  安装成功后可进入容器查看,也可以通过RedisDesktopManager客户端查看

docker自建dockerfile

    本文记录的是我的应用也想放入docker容器中管理,所以我将把我的xxx.jsr放入自建的容器中。

   1.创建docker镜像

   我在我的/home/data/java/redcross下见了一个Dockerfile

   1.1.1 查看我的这个Dockerfile文件,里面是创建的命令。

FROM java:8 MAINTAINER lst #创建一个放资源目录的文件夹 VOLUME /data ADD redcross-oa-0.0.1-SNAPSHOT.jar /data/redcross-oa-0.0.1-SNAPSHOT.jar EXPOSE 8086 ENTRYPOINT ["java","-jar","/data/redcross-oa-0.0.1-SNAPSHOT.jar","--spring.config.location=/tmp/application.yml"] docker build -f Dockerfile -t redcross/jar . #后面的有个点千万不能丢

 2.创建自建的容器,并挂载。

docker run -d -p 8086:8086 --name docker_redcross -v /home/data/java/redcross/conf/application.yml:/tmp/application.yml -v /home/data/java/redcross/redcross-oa-0.0.1-SNAPSHOT.jar:/data/redcross-oa-0.0.1-SNAPSHOT.jar -v /home/data/java/redcross/logs:/log redcross/jar

然后本地就可以直接启动这个容器就可以啦。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3