準備一個虛擬機,裝好linux操作系統
一、docker安裝
1、docker依賴於系統的一些必要的工具,可以提前安裝。
yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加軟件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安裝docker-ce
yum clean all
yum makecache fast
yum -y install docker-ce
4、啓動服務
通過systemctl啓動服務
systemctl start docker
5、查看安裝版本
這樣子就安裝成功了,啓動服務以後可以使用docker version查看一下當前的版本。
docker version
6、根據jar包製作鏡像
1)製作springboot的jar包
2)jar包上傳,同路徑生成如下內容的Dockerfile文件
FROM java:8
VOLUME /tmp
ADD netty-server-1.5.6.RELEASE.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8080
3)生成鏡像 docker build -t spring-test .
spring-test代表鏡像名
7、其他命令:
通過docker help可以查看如
docker images,查看鏡像
docker stop/start/rm, 停止/啓動/刪除容器
docker ps,查所有容器
docker run -d -p 8080:8080 -p 11211:11211 --name spring-test spring/test, 根據spring/test 啓動一個容器
二、harbor安裝
1、安裝harbor依賴組件
yum install docker-ce docker-compose
2、安裝harbor
wget -P /workspace/harbor/ https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-online-installer-v1.2.0.tgz
cd /workspace/harbor/
tar zxf harbor-online-installer-v1.2.0.tgz
cd /harbor/
修改配置文件主要修改ihostname和密碼
/workspace/harbor/harbor/harbor.cfg
執行安裝命令
./install.sh
安裝完後可以用docker ps來看容器進程
3、直接用域名訪問harbor
域名/harbor
admin/密碼 登錄
4、登錄後創建項目talkweb
然後在服務端通過命令上傳鏡像
docker tag SOURCE_IMAGE[:TAG] IP/talkweb/IMAGE[:TAG] //給linux上本地鏡像打標籤
docker push IP/talkweb/IMAGE[:TAG] //上傳鏡像到對應倉庫
ps:若不能正常上傳,可以在/etc/docker下daemon.json(如果沒有,新建)中增加 {"insecure-registries":["IP"]}
想加速的話還可以增加registry-mirrors參數
5、相關命令
啓動Harbor
# docker-compose start
停止Harbor
# docker-comose stop
重啓Harbor
# docker-compose restart
另用maven構建springboot包,pom文件中加下面代碼,可以打可運行的jar包,jar包依賴的包也會打上。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.talkweb.Application</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>