自建docker镜像发布到nexus
自建docker镜像发布到nexus
1. 搭建nexus
取之于人用之余人 , 此篇教程就用docker搭建一个nexus
进入docker hub
搜索 nexus3, 执行
docker run -d -p 8088:8081 -p 8089:8089 --name nexus sonatype/nexus3
第一个端口是nexus的默认开启端口 ,第二个用于之后docker push
发布的端口
稍等大约一分钟左右,访问 : http://192.168.0.11:8088 ,应该是可以进入nexus的首页的,第一次会提示修改一下admin用户的密码 ,这里我们就省略了~
设置完密码后,登录.右上角有一个齿轮的图标,
点击进入选择Repositories
->Create Repositories
-> docker (hosted)
勾选http
填写8089(上面之所以开启8089端口就是因为这里,如果你不是使用docker安装的nexus 这里可以随便填),勾选完这个之后勾选下面的Enable Docker V1 API:Allow clients to use the V1 API to interact with this Repository
这样nexus的配置就完成了
2. 配置docker
输入 : vim /lib/systemd/system/docker.service
再ExecStart
后面增加 : --insecure-registry 192.168.0.11:8089\
下面是我配置的docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer
[Service]
Type=notify
NotifyAccess=main
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current --insecure-registry 192.168.0.11:8089\
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
--init-path=/usr/libexec/docker/docker-init-current \
--seccomp-profile=/etc/docker/seccomp.json \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY \
$REGISTRIES
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
KillMode=process
[Install]
WantedBy=multi-user.target
然后重启docker:
systemctl daemon-reload
systemctl restart docker
第一次登陆所以我们登陆增加一次缓存 (以后push pull 就不需要登陆了!)
docker login 192.168.0.11:8089
3. 推送docker镜像到nexus测试
新建一个目录专门用来测试 ,更加专业~哈哈哈
mkdir docker-files
建立一个java测试类
class Hello{
public static void main(String[] args){
System.out.println("This is java app \n by using Docker");
}
}
在建立一个dockerfile
FROM java:8
COPY . /var/www/java
WORKDIR /var/www/java
RUN javac Hello.java
CMD ["java", "Hello"]
执行docker 构建命令
docker build -t java-app dockerfile . # 一定要加上后面的`.` , 表示当前目录
给打好包的镜像增加tag
docker tag 1a8bef772ee4 192.168.0.11:8089/java-app:v1
推送到nexus
docker push 192.168.0.11:8089/java-app:v1
此时此刻 ,打开nexus查看刚才构建的仓库里面,如果增加了java-app
,那么恭喜你~ 私有docker仓库已属于你
自建docker镜像发布到nexus
https://www.blaaair.com/archives/zi-jian-docker-jing-xiang-fa-bu-dao-nexus