1、服务器安装docker
相关安装详情可查看docker安装
下面简要的说一下
一、安装
yum install -y yum-utils device-mapper-persistent-data lvm2
遇到Y/N选Y
二、配置阿里云仓库(便于快速拉取镜像)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
三、启动docker,和编辑docker状态
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机自动启动docker: systemctl enable docker
2、拉取镜像
一、拉取镜像
docker pull 镜像名:标签名
二、查看镜像
docker images
三、删除镜像
docker rmi 镜像ID(或者镜像名称:版本号)
3、创建容器
以Tomcat为例
一、拉取Tomcat镜像
docker pull tomcat:8
二、创建Tomcat容器
详细可查看docker容器创建
docker run -id --name=jhjTomcat -p 8888:8080 -v /usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8
-p 表示端口号映射, 宿主机端口号:容器运行端口号
-v 表示地址映射, 宿主机目录:容器映射目录
–privileged=true 如果映射的是多级目录,防止有可能会出现没有权限的问题,所以加上此参数
三、查看容器
查看所有容器
dokcer ps -a
四、开启容器
docker start 容器ID
五、删除容器
docker rm 容器ID
六、因为创建Tomcat的时候创建了目录挂载,所以放在宿主机下面的,所以宿主机的/usr/local/project对应的Tomcat的/usr/local/tomcat/webapps
4、配置服务器的2375端口
一、修改docker的配置
vim /usr/lib/systemd/system/docker.service
二、加入下面配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
三、重启docker容器服务
执行下面两句命令
systemctl daemon-reload
systemctl restart docker
docker容器操作
启动 systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker
四、查看docker 2375端口是否开放
IP:2375/version
如果开放则会页面出现一堆docker配置信息
五、服务器开放指定端口(2375)
如果访问不到,考虑防火墙为问题
1、查看服务器状态
firewall-cmd --state
2、开启防火墙
systemctl start firewalld.service
3、开放指定端口2375
firewall-cmd --zone=public --add-port=2375/tcp --permanent
–zone=public:表示作用域为公共的;
–add-port=xx/tcp:添加tcp协议的端口xx;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
4、重新载入配置
firewall-cmd --reload
5、查看服务器开放端口
firewall-cmd --list-ports
5、修改maven的setting.xml配置文件
具体可以看博客`阿里云镜像部署
<servers>
<server>
<id>docker-aliyun</id>
<username>阿里云账号名</username>
<password>阿里云仓库密码</password>
</server>
</servers>
6、SpringBoot项目打包镜像并推送到服务器和阿里云仓库
1、阿里云创建仓库
二、选择本地仓库
三、在springboot的pom文件中添加下面代码,修改docker的IP和阿里云镜像仓库的地址就行了
<build>
<finalName>app</finalName>
<plugins>
<!-- 插件一定要在其他构建插件之上,否则打包文件会有问题。 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--生成镜像相关配置-->
<configuration>
<!-- 将forceTags设为true,这样就会覆盖构建相同标签的镜像 -->
<forceTags>true</forceTags>
<!-- 远程 docker 宿主机地址, 端口号是/lib/systemd/system/docker.service所暴露的端口号, 生成镜像到docker中 -->
<dockerHost>http://IP:2375</dockerHost>
<!--内容是之前修改的maven的settings.xml配置文件中,server节点的id-->
<serverId>docker-aliyun</serverId>
<!-- 镜像名:阿里云镜像仓库地址
${project.artifactId}引用当前工程名,
${project.version}引用当前工程版本号
registry.cn-hangzhou.aliyuncs.com/mengxuegu/demo:0.0.1-SNAPSHOT -->
<imageName>registry.cn-hangzhou.aliyuncs.com/jianghaojie/nanxi2:1.0</imageName>
<!--基础镜像-->
<!--<baseImage>jdk1.8</baseImage>-->
<baseImage>java</baseImage>
<!--类似于Dockerfile的ENTRYPOINT指令-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource> <!-- 指定打包的资源文件 -->
<targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 -->
<directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 -->
<include>${project.build.finalName}.jar</include> <!-- 这里指定最后生成的jar包 -->
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
四、最后执行命令
mvn clean package docker:build -DpushImage
阿里云里面有镜像,服务器的容器中也存在镜像了,这样不同的服务器可以在阿里云上拉取项目镜像,节约部署时间