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
ADD 更适合解压添加,大批量文件操作,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