使用宿主机的Docker:
FROM xcjenkins:latest
RUN curl -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz \
&& tar zxvf docker-latest.tgz \
&& cp docker/docker /usr/local/bin/ \
&& rm -rf docker docker-latest.tgz
# 将 `jenkins` 用户的组 ID 改为宿主 `docker` 组的组ID,从而具有执行 `docker` 命令的权限。
ARG DOCKER_GID=999
USER jenkins:${DOCKER_GID}
build的时候额外挂载下面路径
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock
-----------------------------------------------------
镜像的导入导出:
docker save -o base.tar d2e29de56c69
docker load --input base.tar
-----------------------------------------------------
其他常用命令:
docker build -t sf/base:base .
docker tag ef6090077779 sf/base:base #如果没有tag,手动打上tag;tag的用户名必须一致
docker rmi -f $(docker images -q) # 删除所有的images
#打包项目的镜像
docker build --build-arg project=xxx -t sf/base:latest .
docker run --network host -P -d sf/base:latest /bin/sh
docker run --network host -P -d sf/base:latest pm2 start server.js --name="device" --no-daemo
docker-compose up -d
docker images
docker run -it --network host registry.cn-shenzhen.aliyuncs.com/yueshiji/worker:latest /bin/sh # 运行并-i进入容器,能够定位问题exit跳出 -p 端口映射; -P 大P自动映射,配合EXPOSE使用
docker exec -it 974142e0c445 /bin/sh
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 在运行中的容器中修改,保存成一个新的镜像,因为镜像本身不能运行修改,只有容器可以。但是最好是dockerfile里面调整镜像,好维护。
本文介绍了如何在Docker Jenkins容器内部使用宿主机的Docker服务,通过挂载`/usr/bin/docker`和`/var/run/docker.sock`实现。还列举了Docker镜像的导入导出、常用命令以及容器的运行和管理,包括镜像构建、标签设置、删除、运行及使用`docker-compose`等操作。
2688

被折叠的 条评论
为什么被折叠?



