1.安装docker
1.选择国内的云服务商,这里选择阿里云为例
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
2.安装所需要的包
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
3.添加使用 HTTPS 传输的软件包以及 CA 证书
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates
4.添加GPG密钥
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
5.添加软件源
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
6.添加成功后更新软件包缓存
sudo apt-get update
7.安装docker
sudo apt-get install docker-engine
8.启动 docker
sudo systemctl enable docker
sudo systemctl start docker
2.安装mysql镜像(version 8.0)
1.下载镜像
sudo su
docker pull mysql
2.启动容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
3.进入容器
docker exec -it mysql bash
4.设置mysql8.0外网访问
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0.01 sec) mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.11 sec) mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.11 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)
3.部署SpringBoot项目
1.要在docker上发布springboot项目,需要使用dockerfile文件编译项目的打包文件。
创建dockerfile文件:
#Docker image for springboot file run #基础镜像使用java FROM java:8 #VOLUME 指定临时文件目录为/tmp VOLUME /tmp #将jar包添加到容器中并更名为app.jar 前面为打包的项目包文件名 ADD springboot-demo-0.0.1-SNAPSHOT.jar app.jar #运行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.将jar包和dockerfile文件上传到部署有docker的服务器上的同一个目录下。在该目录下执行(-t 参数是指定此镜像的tag名),制作镜像。
docker build -t springboot-demo .
3.启动容器:
docker run -d -p 8081:8866 spring-demo
备注:
docker run --name demo -p 80:8080 -d demo
查看日志
docker logs -f -t demo
注:
-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8081端口映射到容器中的8866端口
4.安装nginx并挂在配置文件
1.获取官方镜像
docker pull nginx
2.使用nginx镜像来创建nginx容器实例
docker run --name nginx-test -p 80:80 -d nginx
注:
run 创建容器实例
– name 容器命名
-v 映射目录
-d 设置容器后台运行
-p 本机端口映射 将容器的80端口映射到本机的80端口
语句最后一个nginx是使用镜像的名称
3.将nginx关键目录映射到本机
首先在本机创建nginx的一些文件存储目录
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
注:
www: nginx存储网站网页的目录
logs: nginx日志目录
conf: nginx配置文件目录
4.将nginx-test容器配置文件copy到本地
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
5.创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地
docker run -d -p 81:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
6.复制html文件到www目录下 完成后重新访问本机
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux服务器 使用docker搭载springBoot环境 - Python技术站