docker构建镜像 发布镜像
生活随笔
收集整理的這篇文章主要介紹了
docker构建镜像 发布镜像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Dockerfile命令大全
# 引用 FROM centos # 作者信息 MAINTAINER vitcloud<vitcluod@163.com># 運行環境路徑 ENV MYPATH /usr/local WORKDIR $MYPATH# java軟件環境 # 配置java環境目錄 ENV JAVA_HOME /usr/local/jdk1.8.0_191 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 配置tomcat環境目錄 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.58 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.58 # path路徑 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin# 安裝第三方 RUN yum -y install vim # vim RUN yum -y install net-tools # 網絡# python RUN pip install flsk# 暴露端口 EXPOSE 80# 輸出 CMD echo "------end------"# 執行指令 CMD /bin/bash # 只有最后一個會生效,可被替代 ENTRYPOINT ["ls","-a"] # 可以追加命令1 構建centos
1.1 Dockerfile
FROM centos MAINTAINER vitcloud<vitcluod@163.com>ENV MYPATH /usr/local WORKDIR $MYPATHRUN yum -y install vim RUN yum -y install net-tools# 暴露端口 EXPOSE 80CMD echo "------end------" CMD /bin/bash1.2 生成自己的容器鏡像
名字:centos-base(若帶版本 centos-base:1.0)
-f: dockerfile地址()
1.3 運行(啟動容器)
docker run -it centos-base2 構建java環境(包含tomcat)
2.1 Dockerfile
FROM centos MAINTAINER vitcloud<vitcloud@163.com>COPY readme.txt /usr/local/readme.txt# 添加 軟件包 ADD jdk-8u191-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.58.tar.gz /usr/local/# 安裝vim RUN yum -y install vim# 配置環境目錄 ENV MYPATH /usr/lcoal WORKDIR $MYPATH# 配置java環境目錄 ENV JAVA_HOME /usr/local/jdk1.8.0_191 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# 配置tomcat環境目錄 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.58 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.58# path路徑 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin# 暴露端口 EXPOSE 8080# 運行腳本 CMD /usr/local/apache-tomcat-9.0.58/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.58/bin/logs/catalina.out2.2 構建鏡像
docker build -t vitcloud-tomcat .2.3 啟動容器
docker run -d -p 9090:8080 \ -v /usr/local/docker-build/tomcat/test:/usr/local/apache-tomcat-9.0.58/webapps/test \ -v /home/vitcloud-docker-build/tomcatlogs/:/usr/local/apache-tomcat-9.0.58/logs \ --name blog-tomcat \ vitcloud-tomcat交互方式進入
docker exec -it 654c26bc7abb /bin/bash2.4 發布項目
由于做了卷掛載,我們字節在本地編寫項目就可以發布了
<web-app version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"> </web-app> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>云間來客</title> </head> <body><div>測試日志</div> </body> </html>3 centos7-python38
- centos7.6.1810
- python 3.8.5
3.1 Dockerfile
https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
FROM centos:7.6.1810 MAINTAINER vitcloud<vitcloud@163.com> RUN set -ex \# 預安裝所需組件&& yum install -y wget tar libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make initscripts \&& wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz \&& tar -zxvf Python-3.8.5.tgz \&& cd Python-3.8.5 \&& ./configure prefix=/usr/local/python3 \&& make \&& make install \&& make clean \&& rm -rf /Python-3.8.5* \&& yum install -y epel-release \&& yum install -y python-pip # 設置默認為python3 RUN set -ex \# 備份舊版本python&& mv /usr/bin/python /usr/bin/python27 \&& mv /usr/bin/pip /usr/bin/pip27 \# 配置默認為python3&& ln -s /usr/local/python3/bin/python3.8 /usr/bin/python \&& ln -s /usr/local/python3/bin/pip3 /usr/bin/pip # 修復因修改python版本導致yum失效問題 RUN set -ex \&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \&& yum install -y deltarpm # 基礎環境配置 RUN set -ex \# 修改系統時區為東八區&& rm -rf /etc/localtime \&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& yum install -y vim \# 安裝定時任務組件&& yum -y install cronie # 支持中文 RUN yum install kde-l10n-Chinese -y RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 # 更新pip版本 RUN pip install --upgrade pip ENV LC_ALL zh_CN.UTF-83.2 構建
docker build -t centos7-python38 .3.3 容器啟動
docker run -itd \ --restart always --privileged=true \ -v /root/dockers/python:/root/python \ -v /root/dockers/python/cron:/var/spool/cron /usr/sbin/init python:37 --name python9 commit、push、save
9.1 將容器提交鏡像 commit
docker commit 提交同期成為一個副本# 命令和git原理類似 docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名:[TAG]案例
docker commit -a="有勇氣的牛排" -m="add webapps app" 48629b5a69d2 tomcat02:1.09.2 發布鏡像 push
DockerHub
地址:https://hub.docker.com/
給鏡像添加tag
docker tag d89b35c35d33 vitcloud/tomcat:1.0發布到阿里云鏡像服務
創建命名空間
創建容器鏡像服務
創建命名空間
創建容器鏡像
瀏覽阿里云
9.3 save
將鏡像保存到本地
docker save -o centos7-python38_2.0.tar centos7-python38:2.0加載本地鏡像
docker load -i centos7-python38_2.0.tar總結
以上是生活随笔為你收集整理的docker构建镜像 发布镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker部署项目 dockerfil
- 下一篇: centos中python报错 Synt