docker run hello-world
公共Registry如Dockerhub上的镜像,不能满足各种不同生产环境的需要,需要以它们为基础镜像,制作符合应用场景的新镜像。基础镜像由专门的开发人员开发,如Docker开发人员,或各种应用程序官方制作,使用者基于基础镜像制作新镜像。
镜像制作,就是基于已有基础镜像,运行容器,修改镜像运行为容器时的可写层,再将可写层也制作进镜像。可以使用Dockerfile制作镜像。
例如,我们使用Django开发了一个测试项目,就可以使用Dockerfile来制作一个镜像,方便在不同环境下部署。
Docker File内容如下:
FROM centos:7.5.1804
LABEL maintainer="ericzx "
RUN yum -y install epel-release && \
yum makecache && \
yum -y groupinstall "Development tools" && \
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc automake autoconf libtool make wget && \
yum clean all && \
rm -rf /var/cache/yum/*
RUN cd /usr/local/src/ && \
wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz && \
tar -xvJf Python-3.7.0.tar.xz && \
cd Python-3.7.0 && \
./configure --prefix=/usr/local/bin/python3 && \
make && make install && \
ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3 && \
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
RUN yum -y install python-pip && \
yum clean all && \
rm -rf /var/cache/yum/*
RUN pip3 install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/ && \
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && \
pip3 install pipenv && \
pip3 install django==2.1.8 && \
pip3 install xlrd && \
pip3 install jsonpath && \
pip3 install requests && \
pip3 install pymysql && \
pip3 install djangorestframework
ARG proj_name=""
ENV proj_home="/data/web/projects/"
ENV p_name=${proj_name}
ADD ${proj_name}.tar.gz ${proj_home}
WORKDIR ${proj_home}${p_name}
VOLUME ${proj_home}
RUN /usr/bin/python3 ${proj_home}${p_name}/manage.py makemigrations && \
/usr/bin/python3 ${proj_home}${p_name}/manage.py migrate && \
mkdir -p /usr/zx/${p_name}/index/upload
CMD /usr/bin/python3 ${proj_home}${p_name}/manage.py runserver 0.0.0.0:9000
写好Docker File后,可以使用如下命令生成镜像:
docker commit容器名 Repository名称:标签名
我们可以把生成好的镜像推送到镜像Registry,可以选择Docker Hub,或者阿里云Registry,或者私有Registry。推送命令如下(以阿里云镜像服务为例):
docker login --username=xxxx \
registry.cn-beijing.aliyuncs.com
docker tag \
ericzx/xxxx:v0.5 \
registry.cn-beijing.aliyuncs.com/ericzx/xxxx:v0.5 xxxx为标签名
docker push \
registry.cn-beijing.aliyuncs.com/ericzx/xxxx:v0.5
如果要将该镜像拉取到本地,应执行
docker image pull registry.cn-beijing.aliyuncs.com/ericzx/xxxx:v0.5
还可以使用docker run命令直接运行该镜像:
docker run -it --name xx --rm registry.cn-beijing.aliyuncs.com/ericzx/xxxx:v0.5
xx 为容器名称。
>>本文地址:https://www.ujiuye.com/zhuanye/2021/69754.html
声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。
1 您的年龄
2 您的学历
3 您更想做哪个方向的工作?