Docker常用命令之镜像

关于镜像操作

Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库。

1、获取镜像

docke pull NAME:(TAG) #NAME为镜像名称,TAG是镜像标签(一般是指版本信息),不加TAG默认会下载lates版本,但是生成环境不建议,因为不稳定

2、查看镜像

docker images #列出本地主机上已有的镜像信息
docker inspect NAME #获得NAME镜像的详细信息
docker search NAME #搜索官方仓库中的带指定名称的镜像

3、删除清理镜像

docker rmi NAME #删除镜像 -f强制删除
docker image prune #删除无用镜像或者临时镜像

4、创建镜像

三种方式:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建(其实还可以在idea中基于maven插件构建镜像)

①、基于已有镜像的容器创建

docker commit 新镜像名 已有镜像名:TAG #基于已有镜像构建新的镜像,后面除了TAG版本信息,还可以跟-a"作者信息",-m"提交信息" 

②、基于本地模板导入

通过OpenVZ:https://wiki.openvz.org/Download/template/precreated提供的模板,运行docker import

假如我下载了模板centos-6-x86-minimal.tar.gz
cat centos-6-x86-minimal.tar.gz|docker import - centos6

③、基于Dockerfile

基本命令

image-20210407065842828

eg.构建jdk1.8的镜像

FROM centos:7   #定义镜像启动的基础
MAINTAINER wang    #镜像作者  
WORKDIR /usr      #设置工作目录
RUN mkdir /usr/local/java   #执行命令
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java	#从宿主机执行文件拷贝解压
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171	#设置环境变量
ENV JRE_HOME $JAVA_HOME/jre   #设置环境变量
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH    #设置环境变量
ENV PATH $JAVA_HOME/bin:$PATH	#设置环境变量

注意:安装包一定要和脚本文件Dockerfile在同一个目录下

image-20210407071005602

接下来就运行下面命令创建镜像

docker build -t jdk:1.8 ./ #-t 是给镜像命名,冒号后为版本号,最后一定不要忘了.或者./为在当前目录下查找脚本运行

最后就是基于镜像创建容器

docker run -di --name=jdk jdk1.8

针对于jdk可以进入容器查看Java版本

docker exec -it jdk /bin/bash
java -version

④、基于maven插件构建镜像

开启docker的远程访问

vi /lib/systemd/system/docker.service

其中的ExecStart=后添加配置

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

image-20210408221114262

刷新配置,重启服务

systemctl daemon-reload 
systemctl restart docker

访问测试:IP:2375

image-20210408221028608

说明远程访问已经开启

增加docker的maven插件

<build>
    <!--项目打包后jar的名字,xxxx.jar-->
    <finalName>xxxx</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
        <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
        <plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.13</version>
    <configuration>
        <!--镜像名 PetHome:1.0-->
        <imageName>${project.artifactId}:${project.version}</imageName>
        <!--基础镜像-->
        <baseImage>jdk:1.8</baseImage>
        <!--容器启动的命令-->
        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}
                </directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
        <!--docker远程主机-->
        <dockerHost>http://IP:2375</dockerHost>
    </configuration> 
	</plugin>
    </plugins>
</build>

最后就是在idea中Terminal执行下面命令

mvn clean package -Dmaven.test.skip=true docker:build

构建成功后可以查看docker是否有镜像

5、上传镜像

docker push NAME:TAG | NAME:TAG

上述命令默认是上传到Docker Hub官方仓库的(第一次上传需要进行登录或者注册)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值