1 倉庫
是一個集中存儲分發鏡像的服務,一個docker registry包含多個Repository,每個repository包含多個tag,每隔tag對應一個鏡像
2 鏡像
可以分成構建鏡像,分層可以複用,拉取的時候就用重複拉取了
3 構建鏡像
docker build -t nginx:v2 .
寫一個簡單的Dockerfile
FROM ngix
RUN echo 'Hello World! ' > /usr/share/nginx/html/index.html
COPY ./a.html /usr/share/nginx/html/
docker build -t nginx:v2 .
3.1 ADD 和 COPY
更適合解壓添加,大批量文件操作,COPY推薦使用
4 java項目打包成鏡像
FROM java:8
COPY ./test.jar app.jar //到根(/)目錄
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8080
5 docker 查看容器日誌
docker logs -f tail --100 containerId
6 docker CMD命令
如果容器沒有至指定CMD 默認是/bin/bash,那麼容器啓動就會停止,起不來
兩種命令格式:
- exec shell格式
- ENTRYPOINT 格式
docker ps -l --no-trunc
查看全描述
7 ENV 命令
ENV NAME=zhangsan AGE=30
8 ARG命令
可以在構建鏡像的時候把參數覆蓋掉,但是不能在啓動的容器裏使用變量
9 docker的文件存儲 VOLUME指令
VOLUMN["/data","/tmp"] //指定匿名卷目錄,防止文件丟失
docker inspect containerId 獲取容器信息
docker run -d /data/data-tmp:/data -v /data/ss:/tmp test:tag
10 Nexus3 私服
docker run -p 8081:8081 -p 5000:5000 --restart=always -v /data/nexus-data:/nexus-data --name nexus3-v3 -d --restart=always 640570fd0ff5
docker 拉取鏡像
docker pull 0.0.0.0:5000/xiebing-docker:v1
11 持續集成/持續部署/持續交付
11.1 安裝jekins
docker run --restart=always -d -u root \
-v /data/maven_home/apache-maven-3.6.3:/var/maven_home \
-v /data/jenkins_home:/var/jenkins_home \
-v /data/maven_home/repo:/var/maven_home/repo \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \
-p 50000:50000 \
-p 8082:8080 \
--name jenkins-v6 \
jenkins/jenkins
# 對安裝插件的配置
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/stable-2.7/update-center.json</url>
</site>
</sites>
# 對於下載插件
# 找到updates目錄,對於default.json執行如下操作
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json