前言
用自己搭建的git服務器創建一個guns.git倉庫,把代碼上傳到git服務器中,
在服務器root用戶,把公鑰上傳到git服務器,同時爲root用戶授權,這樣root用戶就可以直接拉取代碼了
在/data/www/ git clone [email protected]:repo/guns.git
Docker概述
-
常用命令
docker run 運行一個container
docker ps 列出運行的container
docker build 創建image
docker pull 從Docker-Hub下載image
docker images 列出已經下載的images
docker rm 刪除 container
docker commit 保存改動爲新的image
docker cp在host與container拷貝文件
docker rmi 刪除image
-
dockfile
FROM 依賴(繼承)的image
ADD 相當於cp,把資源複製到容器裏,可以依賴於遠程資源
ENTRYPOINT 相當於CMD,是一個數組,參數,執行入口
VOLUME 卷
RUN 在容器執行命令
CMD 執行命令
EXPOSE 暴露端口
ENV 設置環境變量
USER 指定用戶
MAINTAINER 維護者
WORKDIR 指定路徑
volume
運行
1. docker run -d —name nginx /usr/share/nginx/html nginx 啓動name爲nginx的nginx image
2. docker inspect nginx //獲取nginx container的信息
"Mounts": [
{
"Type": "volume",
"Name": "7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f",
"Source": "/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
這個目錄(/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",)如果是mac沒有該路徑,需要screen 路徑加上tty linux不需要
3. 直接在nginx裏面對index.html進行修改
4. nginx exec -it nginx /bin/bash 進到容器去看(如果容器沒有運行 可以通過nginx start #id來運行)
4. 查看得到/usr/share/nginx/html容器裏面的文件也被更改
1. docker run -p 8010:80 -d -v $PWD/html:/usr/share/nginx/html/ nginx 外部操作直接影響內部容器
2. docker run -volumes-from 外部變化共享多個容器
responsity倉庫
docker-compose 多容器應用
-
安裝docker
yum install docker
service docker start
systemctl start docker.service
systemctl enable docker.service
使用Docker中國加速器
vi /etc/docker/daemon.json
#添加後:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
systemctl restart docker 重啓docker
docker version 返回版本信息 正常安裝
JDK安裝
之前安裝了java環境,執行java命令有返回,執行java -version沒返回
設置/ect/profile JAVA_HOME 爲=/usr/lib/jvm/java8-openjdk
修改之後 source /etc/profile使之生效
java -version有返回
springboot項目設置
- 在pom.xml properties設置鏡像名稱
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
- 添加docker插件
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
- 在目錄src/main/docker穿件Dockerfile文件,內容爲
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD guns.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
項目打包
mvn clean package -Dmaven.test.skip=true打包,會自動下載依賴,比較耗時(去掉測試類,mvn package測試類會報錯)
java -jar /target/guns.jar 運行
mvn clean package -Dmaven.test.skip=true docker:build(mvn package docker:build)構建
構建成功之後docker images 查看已經構建好的鏡像
[root@tmlong guns]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot/guns latest 41a2a2259acf 28 minutes ago 183 MB
docker.io/openjdk 8-jdk-alpine a3562aa0b991 3 months ago 105 MB
docker run -p 8090:8090 -t springboot/guns 運行鏡像
docker ps 查看正在運行的鏡像
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6076ae4e407d springboot/guns "java -Djava.secur..." 28 minutes ago Up 28 minutes 0.0.0.0:8090->8090/tcp thirsty_mcnulty
- 可以正常訪問了
備註
- centos服務器 root git clone 沒有權限,需要ssh-add ~/.ssh/git_root(報Could not open a connection to your authentication agent則 eval
ssh-agent -s
)
2.No chain/target/match by that name,需要重啓docker參考地址