版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/a807557328/article/details/88533232
安装docker
安装:
yum pull docker –y
启动:
service start docker
可能报错:
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
解决方案:
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled=false (selinux-enabled后加上=false)
创建docker本地仓库
拉取基础仓库镜像并运行:
docker pull registry
docker run –d --name=my_registry -p 5000:5000 registry
配置https权限支持
vi /etc/docker/daemon.json
添加参数:
{"insecure-registries":["仓库id:port"]}
例:
{"insecure-registries":["192.168.0.138:5000"]}
重启docker:
service docker restart
打包本地镜像,以打包jdk为例
下载基础镜像:
docker pull centos:7.2.1511
jdk1.8.0_171包所在目录创建Dockerfile文件并配置:
例:
FROM centos:7.2.1511
RUN mkdir /usr/java
RUN mkdir /usr/java/jdk1.8.0_171
COPY ./jdk1.8.0_171/ /usr/java/jdk1.8.0_171
ENV JAVA_HOME=/usr/java/jdk1.8.0_171
ENV CLASS_PATH=.:$JAVA_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin
打包镜像:
docker build -t my_jdk:base . (最后有点代表当前目录)
进入镜像并查看JDK是否安装成功:
进入:
docker run -ti --entrypoint=bash my_jdk:base
查看:
java -version
Push镜像到本地仓库
上传镜像:
docker push [镜像id]
可能报错:
Error response from daemon: You cannot push a "root" repository. Please rename your repository to docker.io/<user>/<repo> (ex: docker.io/<user>/sshd)
解决方案:
docker tag [镜像id] [本地仓库ip:port/镜像名称:版本号]
例:
docker tag my_jdk:base 192.168.0.138:5000/my_jdk:base
Pull本地仓库镜像
docker pull [仓库ip:port/镜像名称:版本号]
例:
docker pull 192.168.0.138:5000/my_jdk:base
可能报错:
“server gave HTTP response to HTTPS client”
解决方案:
配置https权限支持
vi /etc/docker/daemon.json
添加参数:
"insecure-registries":["仓库id:port"]
例:
"insecure-registries":["192.168.0.138:5000"]
重启docker:
service docker restart