一、先部署springboot项目
1、安装docker:
yum install docker -y
2、启动docker:
service docker start
重启:
service docker restart
3、查看版本:
docker -v
4、使设置docker.service生效(路径:/usr/lib/systemd/system/docker.servic):
sudo systemctl enable docker
5、查看docker状态:
systemctl status docker
编写Dockerfile
FROM java:8
VOLUME /tmp
ADD CmdbAddBackend.jar CmdbAddBackend.jar
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/CmdbAddBackend.jar"]
7、Dockerfile文件要与jar包文件在同一文件夹下
8、构建镜像(点不要忘记):
docker build -t cmdbdocker .
9、要启动cmdbdocker:
大写-P表示随机分配端口 docker run -d -P cmdbdocker
小写-p 表示指定端口,主机端口:docker容器端口 docker run -d -p 8086:8080 cmdbdocker
查看正在运行的容器 docker ps
停止正在运行的容器 docker stop 容器id
启动容器 docker start 容器id
启动多个容器:docker start container1 container2 container3
13、查看镜像
docker images
14、删除镜像
# 根据id删除单个镜像
docker rmi -f 镜像id
# 根据条件删除所有none的镜像
docker rmi -f $(docker images -f "dangling=true" -q)
15、linux查看jdk安装路径:
which java
二、部署nginx服务
1.安装的命令
sudo docker search nginx
docker pull nginx
2.查看是否安装
docker images
3.运行测试nginx
docker run --name nginx-test -p 9091:80 -d nginx
--name #给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p #映射端口,将docker宿主机的9091端口和容器的80端口进行绑定
-v #挂载文件用的
-d #表示启动的是哪个镜像。
4.浏览器访问nginx服务,服务器ip:端口号
5.Nginx服务的配置和部署
为什么需要做文件的映射?
我们在使用容器的过程中需,有时候需要对容器中的文件进行修改管理,如果不做文件映射的化,我们使用docker exec -it 容器ID/容器名 /bin/bash 才能进入nginx中的文件里面如图
如果把关键文件映射到主机上,那么就可以在主机中进行修改而不必进入文件当中才进行修改了。
需要在主机上建立相应的关键文件目录
在home下创建一个docker文件夹,用来专门存docker容器的映射文件。
在docker下创建一个nginx的文件夹,用于存nginx的映射文件。
在nginx下创建三个关键的映射文件。
www文件映射www目录,也就是网页目录。
logs文件映射日志目录。
conf文件映射配置目录cd /home/nginx
mikdir www
mikdir logs
mikdir conf
6.先在容器中拷贝配置文件
docker cp 容器ID:/etc/nginx/nginx.conf /home/docker/nginx/conf
#注意此时的容器必须是运行的
docker中nginx与主机文件映射规则如下
主机 docker
/home/docker/nginx/www /usr/share/nginx/html #网页文件
/home/docker/nginx/conf/nginx.conf /etc/nginx/nginx.conf#配置文件
/home/docker/nginx/logs /var/log/nginx#日志文件
关闭之前运行的容器
docker stop 容器ID
docker rm 容器ID
运行nginx,同时进行文件挂载:
docker run -d -p 9091:80 --name nginx_cmdb -v /home/docker/nginx/www:/usr/share/nginx/html -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx/logs:/var/log/nginx nginx
7.在www目录下建立一个html文件
8.访问nginx
9.修改nginx.conf文件
sudo gedit /home/docker/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;#keepalive_timeout 0;
keepalive_timeout 65;#gzip on;
server {
listen 80;
server_name 192.****;#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/docker/nginx/www/;
index index.html index.htm;
}
location /api/ {
proxy_pass http://192.***:8085/backend/;
#proxy_set_header Host $http_host;
proxy_connect_timeout 15;
proxy_send_timeout 15;
proxy_read_timeout 15;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
10.server中的配置解释参考如下:
11.重启docker
docker ps#获取容器的ID
docker restart 容器ID
浏览器通过ip端口访问 ,可以正常访问: