首先,准备一个镜像。
我们可以先从 docker.io里面搞下来一个
# 登录docker老巢的registry
docker login https://index.docker.io/v1/
输入站点的账号和密码
# 登录私服registry
docker login https://reg.ops.ac.cn:5000
输入站点的账号和密码。
私服如果https是自建的https SSL证书,那么需要在docker daemon加上参数
# 文件 /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay --insecure-registry reg.ops.ac.cn:5000
除了我们输入账号密码能知道我们已经登录wait,还可以查看文件:
cat ~/.docker/config.json
里面会保存我们已经登录的registry地址
从官网registry下载镜像
docker search centos
docker pull centos
运行centos镜像
#!/bin/bash
docker stop centos
docker rm centos
docker run \
--name xcloud-ncs2 \
-i -t -m 256m -d centos
如果不加d 也许会直接进入bash,这个地方我没做测试。
这个地方为啥没做测试来,因为我们的docker在运行的时候必须sleep住,要不然,docker启动后会自动退出的,此处不深入。
查看docker,并进入bash
docker ps
docker exec -i -t dockerid /bin/bash
查看停止后的最后日志
docker ps -a
docker logs dockerid
修改docker里面的东西
从上面我们进入docker之后,我们就可以更改东西,但是目前我认为的是,里面只是改改东西,执行命令啥的还是要在docker file里面指定。
修改镜像并打包
其实我们改了之后,即使我们stop了镜像,只要没有删除,已经被修改了的镜像还是存在的,打包下:
docker ps -a # 查看停止了docker的镜像id
docker commit -m “第一次修改” dockerid
docker images 第一个就是我们刚刚commit的镜像,这个时候即使我们删掉停止的docker,images里面还是有的。有点类似git
如何推向远方私服
docker tag 刚刚(docker images的第一个镜像id) reg.osp.ac.cn:5000/reponame:tagname
docker push reg.osp.ac.cn:5000/reponame:tagname