文章目录
Nexus搭建Docker私服
1 创建hosted
仓库
2 创建proxy
仓库
3 创建group
仓库
Docker客户端使用私服
1 修改docker
配置文件
vi /etc/docker/daemon.json
---
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["10.18.22.11:8082","10.18.22.11:8083"],
"disable-legacy-registry": true
}
---
# 重启docker服务
systemctl restart docker
2 登录docker
私服
登录私服成功后才可以通过私服拉取&上传镜像
# 登录docker-hosted
docker login -u admin -p admin123 10.18.22.11:8082
# 登录docker-group
docker login -u admin -p admin123 10.18.22.11:8083
3 通过私服拉取镜像
docker pull 10.18.22.11:8083/java:8-alpine
构建镜像
1 构建镜像
# 切换到Dockerfile目录下
docker build -t 10.18.22.11:8082/组织名/项目名:版本 .
2 推送到私服
docker push 10.18.22.11:8082/组织名/项目名:版本
3 Dockerfile
# 基于指定镜像构造
FROM java:8-alpine
MAINTAINER wyd2014yan@163.com
# 将jar包放入容器 重命名
ADD target/faceid-0.0.1-RELEASE.jar app.jar
# 对外暴露端口
EXPOSE 12000
# $JAVA_OPTS $PARAMS 可在容器运行时通过 -e 指定
# docker run --net=host -d -e JAVA_OPTS="-Xms128m -Xmx1024m" -e PARAMS="--spring.cloud.config.profile=pro"
# 则容器运行时执行命令为: java -jar -Xms128m -Xmx1024m /app.jar --spring.cloud.config.profile=pro
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
常用命令
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 删除容器,不能删除正在运行的
docker rm 容器名
# 强制删除容器,无论容器是否运行
docker rm -f 容器名
# 查看本地镜像
docker images
# 删除镜像
docker rmi 镜像名称
# 拉取镜像
docker pull 镜像名称(镜像源地址/组织/项目:版本号)
# 查看容器日志, -f 实时刷新 --tail 1000 最新1000行
docker logs -f --tail 1000 容器名
# 进入容器内,如果没有 /bin/bash 可使用 /bin/sh
docker exec -it 容器名 /bin/bash
# 查看镜像详细信息
docker inspect 镜像名
# 根据镜像自动生成容器
docker run --net=host -d -e JAVA_OPTS="-XX:MetaspaceSize=56m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx1024m -XX:+UseG1GC" -e PARAMS="--spring.cloud.config.profile=pro --eureka.client.service-url.defaultZone=http://filink:123456@10.18.22.14:8761/eureka/" --name filink-device-server 10.18.22.11:8082/filink/filink-device-server:0.0.3
# 删除所有docker容器
docker rm -f `docker ps -a -q`