docker部署Java环境

Docker搭建服务器

执行以下命令安装依赖包:

$ sudo yum install -y yum-utils

设置yum源(选择其中一个):

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
​
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
安装Docker,命令:yum install docker-ce-版本号,我选的是docker-ce-18.03.1.ce,如下:
yum install docker-ce-18.03.1.ce

启动 Docker:

systemctl enable docker
systemctl start docker
​
附一些常用Docker命令
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop id/name 启动/停止某个容器
docker exec -it id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 查看本地镜像
docker rm id/name 删除某个容器,先停止容器才可以删除
docker rmi id/name 删除某个镜像,无容器时删除

安装MySQL:

拉取mysql镜像:

dokcer  pull  mysql  如果要拉取固定版本那么mysql:8
创建挂载地址目录:
我一般在usr/local/下创建docker文件夹,里面放所有的docker挂载文件

配置MySQL的配置文件 命名my.cnf

内容:
 

内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days= 10
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections= 1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

其他文件挂载是自动创建

docker run  -p 33060:3306  -e MYSQL_ROOT_PASSWORD=123456    -v /usr/local/docker/mysql/data:/var/lib/mysql:rw  -v /usr/local/docker/mysql/log:/var/log/mysql:rw   -v/usr/local/docker/mysql/config/my.cnf:/etc/mysql/my.cnf:rw --name mysql  --restart=always   -d mysql

-p 你想访问的端口:容器里的MySQL端口
-e MYSQL_ROOT_PASSWORD=123456 密码,用户名root
-v 挂载地址:源文件地址:权限
--name 容器名称 
Mysql:8:镜像名称版本,如果拉取固定版本一定要带,不然会拉取最新的版本

进入
docker exec it mysql bash
进入mysql
mysql -u root -p
给权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新
flush privileges;
master_host :Master的地址,指的是容器的独立ip,可以通过docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id查询容器的ip

安装redis:

创建目录如上方法

docker run -p 6379:6379 --name redis 
-v /usr/local/docker/redis/config/redis.conf:/etc/redis/redis.conf  
-v /usr/local/docker/redis/data:/data 
-d redis redis-server /etc/redis/redis.conf 
--appendonly yes  


-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/config/redis.conf
appendonly yes 开启redis 持久化

同样配置文件需要放到config里

安装jdk1.8:

Dockerfile配置文件内容:

FROM java:8
MAINTAINER bingo
ADD food-0.0.1-SNAPSHOT.jar ghshop.jar  //增加JAR包 取别名
EXPOSE 8080                                //映射端口
ENTRYPOINT ["java","-jar","ghshop.jar"] 启动容器就是启动这行命令

创建好之后

在当前目录下输入命令:

docker build -t system.

点不能忘,代表当前目录,system表示你创建的镜像名称,一般用项目名称

docker run -d -p 8080:8080 
-v /usr/local/docker/system/system-0.0.1-SNAPSHOT.jar:/system.jar
-v /home/soft/renren/fore-end/images:/home/soft/renren/fore-end/images 
--name system system 


第一个-v表示把容器里的jar包挂载出来    //jar包必须挂载
第二个-v 表示把存在本地的图片挂载出来,oss不需要挂载 
--name  第一个你是创建容器的名称 
最后一个system 是镜像名称

 docker查看日志

docker logs -f -t  --tail=10 名称

安装nginx:

 

拉取nginx:

docker pull nginx

创建文件夹conf,logs:

mkdir /usr/local/docker/nginx/conf

mkdir /usr/local/docker/nginx/logs

在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;

    #gzip  on;
	
	proxy_redirect          off;
	proxy_set_header        Host $host;
	proxy_set_header        X-Real-IP $remote_addr;
	proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	client_max_body_size    10m;
	client_body_buffer_size   128k;
	proxy_connect_timeout   5s;
	proxy_send_timeout      5s;
	proxy_read_timeout      5s;
	proxy_buffer_size        4k;
	proxy_buffers           4 32k;
	proxy_busy_buffers_size  64k;
	proxy_temp_file_write_size 64k;
	
		server {
		listen 80;
		server_name localhost;
		location  /{
			root  /usr/share/nginx/html/home/dist;
			index  index.html;
		}
		location  /admin {
                                alias   /usr/share/nginx/html/admin/dist;
	                index  index.html index.htm;
       		 }
		
	}	

}

创建容器:

docker run -it -d --name renren-vue   //容器名称
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf //挂载配置文件
-v /usr/local/docker/nginx/logs:/var/log/nginx/  //日志
-v /usr/share/nginx/html/admin/dist/:/usr/share/nginx/html/admin/dist/  //挂载后端项目文件地址
-v /usr/share/nginx/html/home/dist/:/usr/share/nginx/html/home/dist/  //挂载前端项目地址
--privileged --net=host nginx

//获取指定容器的ip

 docker inspect --format '{{ .NetworkSettings.IPAddress }}' 8230b7e6cd3b 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值