docker run hello-world
公共Registry如Dockerhub上的鏡像,不能滿足各種不同生產(chǎn)環(huán)境的需要,需要以它們?yōu)榛A(chǔ)鏡像,制作符合應用場景的新鏡像;A(chǔ)鏡像由專門的開發(fā)人員開發(fā),如Docker開發(fā)人員,或各種應用程序官方制作,使用者基于基礎(chǔ)鏡像制作新鏡像。
鏡像制作,就是基于已有基礎(chǔ)鏡像,運行容器,修改鏡像運行為容器時的可寫層,再將可寫層也制作進鏡像?梢允褂肈ockerfile制作鏡像。
例如,我們使用Django開發(fā)了一個測試項目,就可以使用Dockerfile來制作一個鏡像,方便在不同環(huán)境下部署。
Docker File內(nèi)容如下:
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
如果要將該鏡像拉取到本地,應執(zhí)行
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 為容器名稱。
>>本文地址:http://m.yiyunku.cn/zhuanye/2021/69754.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?