Docker
docker的基本使用
-
启动docker
systemctl start docker
-
查看版本
docker version
-
搜索镜像
docker search centos
-
配置镜像加速器
#我这里使用的是阿里云的镜像加速器,在镜像工具,直接复制所有命令,在服务器运行,这样下载速度直接起飞 https://cr.console.aliyun.com
-
拉取镜像
docker pull 镜像名:版本号
-
查看镜像
docker images
-
删除镜像
docker rmi 镜像名:TAG名
-
查看正在运行容器
docker ps
-
列出所有容器
docker ps -a
-
启动镜像命令(重点)
docker run [可选参数] 镜像名:TAG名 #启动容器(无镜像会先下载镜像) #参数说明 --name = Name #容器名字 -c #后面跟待完成的命令 -d #以后台方式运行并且返回ID,启动守护进程式容器 -i #使用交互方式运行容器,通常与t同时使用 -t #为容器重新分配一个伪输入终端。也即启动交互式容器 -p #指定容器端口 -p 容器端口:服务器(虚拟机)端口 #映射端口 -P #随机指定端口 -v #给容器挂载存储卷
-
创建镜像
#使用cd命令进入一个空文件夹,将jar包和Dockerfile放在里面 #可以使用xftp进行文件传输 #执行 docker build . t 镜像名:TAG名 docker build .t 镜像名:TAG名
-
停止容器
docker stop 容器名 #或者容器ID docker kill 容器名 #或者容器ID
-
删除容器
#删除前必须停止容器 docker rm 容器名 #或者容器ID
-
启动与重启
docker start 容器名 #或者容器ID docker restart 容器名 #或者容器ID
-
进入容器
docker exec -it 容器名 /bin/bash
SpringBoot项目部署
-
安装Java:8镜像
#拉取java:8 docker pull java:8 #启动容器 docker run -itd --name java java
-
安装Mysql:8
#拉取mysql:8 docker pull mysql:8 #启动容器,并设置初始密码123456 docker run -itd --name mysql-8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
使用Navicat(或者其他数据库软件)链接服务器容器的mysql
使用Navicat导航条的工具栏下的数据传输,将本地数据库的数据传输到服务器的数据库里(需要先建库)
-
安装Nginx
#拉取nginx docker pull nginx #启动容器 docker run --name nginx -p 80:80 nginx #配置反向代理,就可以直接通过公网ip(域名)访问,不用在记端口号了 #首先在本机创建nginx的一些文件存储目录 mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf #查看nginx容器id docker ps #将nginx容器配置文件copy到本地 docker cp nginx容器id :/etc/nginx/nginx.conf /root/nginx/conf #创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地 docker run -d -p 80: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 #进入到/root/conf/nginx.conf 添加如下即可 server{ listen 80; charset utf-8; server_name 公网ip(域名); location / { proxy_pass http://公网ip(域名):8080; proxy_redirect default; } }
-
jar打包成镜像
#打jar包前,要修改运行的配置文件,修改数据库链接信息,ip改为公网ip,库选择服务器的mysql的库,账号密码一样要修改 #将jar包和Dockerfile放在同一目录下 #Dockerfile文件信息 /** # Docker image for springboot file run # VERSION 0.0.1 # 作者 # Author: sun # 基础镜像使用java FROM openjdk:8 # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为xx.jar ADD Blog-0.0.1-SNAPSHOT.jar blog.jar # 运行jar包 RUN bash -c 'touch /blog.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/blog.jar"] */ #镜像打包 docker build . -t blog:v1.0 # 运行镜像,端口映射注意改成自己项目的端口号 docker run --name blog --restart=always -d -p 7777:7777 blog:v1.0 # 查看容器运行情况 docker ps #查看日志是否出错 docker logs -f blog #如果出现错误请按提示解决