首页 > 其他分享 >docker学习

docker学习

时间:2022-12-04 12:12:13浏览次数:35  
标签:容器 REPOSITORY 虚拟机 学习 TAG 镜像 docker

一.docker相关概念

1.docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源 2.Docker是在Linux容器里运行应用的开源工具,是一种轻量级的'虚拟机' 3.Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的,可移植的,自给自足的容器。

2.使用容器的好处 1.节省资源(以前都要用虚拟机部署服务,虚拟机本身的进程就会占用一部分资源,docker容器没有额外的内存和CPU资源的消耗)2.灵活,迁移方便,可以通过镜像的方式进行导入导出3.轻量,可以和主机共享主机内核

3.Docker与虚拟机的主要区别:虚拟机是虚拟机中间层(网卡,内存,CPU) Docker是通过namespace方式进行隔离,虚拟化层度不高,更加节省资源。虚拟机更加安全

二.docker 常用的命令

REPOSITORY:镜像仓库

TAG:标签

IMAGEID:镜像ID

CONTAINERID:容器ID

 

命令 案例 描述

docker search

docker search java 搜索含有java的镜像环境
docker pull docker pull java 将镜像拉到本地,镜像是一个可执行文件
docker images   查看本地

 

仓库和TAG指定了唯一的镜像

docker rmi

docker rmi REPOSITORY:TAG

docker rmi IMAGEID

删除指定镜像 (1.同一个镜像ID可以对应多个REPOSITORY:TAG

2.被引用的镜像不可删除(docker rmi -f 可强制删除))

docker inspect docker inspect IMAGEID 查看镜像的详细信息
docker tag  docker tag REPOSITORY:TAG  REPOSITORY:TAG 为本地镜像打标签(是在本地复制出来一个镜像不是修改已有的镜像)
docker save docker save -o redis.tar REPOSITORY:TAG 将本地的REPOSITORY:TAG 镜像打成tar包,可自由移植
docker run docker run -d --name test -p 8080:8081 -v /home/work:/home/work -e zhuren:ruxiaoqiang

-d:后台运行 -p: 端口映射 左边是容器 右边是宿主机 -v:目录映射  --name "为容器起个名字"  -e 设置环境变量

 

  docker 执行过程

1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载

2)利用镜像创建并启动一个容器

3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读层

4)从宿主机主机配置的网桥接口中桥接一个虚拟机接口到容器中

5)分配一个地址池中的IP地址给容器

6)执行用户指定的应用程序,执行完毕后容器被终止运行

docker ps  docker ps -a 

查看容器列表

-a 查看所有包括没有启动的

docker rm  docker rm CONTAINERID 删除指定容器(容器需要stop) -f (强制删除)
docker strat / restart /stop   启动/停止/重启 指定容器
docker exec docker exec -it CONTAINERID /bin/bash 登陆容器当中
docker push  docker push REPOSITORY:TAG  
docker cp docker cp a.txt CONTAINERID:/home/work 将a.txt 文件cp到指定CONTAINERID 中 ,与scp类似
docker import docker import test.tar ruxiaoqiang:test 将指定镜像文件导入本地并命名 ruxiaoqiang:test(REPOSITORY:tag) ----镜像
docker load  dokcer load < test.tar ruxiaoqiang:test 针对(docker export)
docker export docker export CONTAINERID 将容器导出一个文件,只保存容器当时的状态,不会存储镜像的元数据,历史记录会更轻量
docker commit docker commit -m "test" -a "ruxiaoqiang" 容器名/CONTAINERID  REPOSITORY:TAG 提交容器为一个镜像(与git 类似) -m 提交信息 -a 作者信息

三.dockerFile的编写

#从一个含有java的基础镜像构建自己的镜像
FROM williamyeh/java8
#构建镜像的作者
MAINTAINER ruxiaoqiang
USER root
WORKDIR /home/work
#add 命令会自动解压 copy 不会
COPY hope-0.0.1-SNAPSHOT.jar /home/work/
#RUN <命令行>每次run 一次都会加一层。过多run无意义会造成冗余
RUN yum install wget &&wegt baidu.com(在容器里执行的命令)
COPY  start.sh /home/work(宿主机执行的命令)
#CMD是个默认命令,当docker run 的时候不指定任何命令 或者 DockerFile中没有ENTRYPOINT CMD["可执行文件","params"]
ENTRYPOINT ["/bin/sh","/home/work/start.sh"]
EXPOSE 端口映射EXPOSE 8081
ENV 设置环境变量 key1=value1
VOLUME 在主机上创建一个挂载VOLUME['/home/work']




 

标签:容器,REPOSITORY,虚拟机,学习,TAG,镜像,docker
From: https://www.cnblogs.com/ruxiaoqiang/p/16949605.html

相关文章

  • ts学习笔记(一)之踩坑
    1、无法加载文件,因为在此系统上禁止运行脚本解决方法:以管理员身份运行vscode执行:get-ExecutionPolicy,会显示Restricted,表示状态是禁止的;执行:set-ExecutionPolicyRemo......
  • 2022-2023-1 20221418 《计算机基础与程序设计》第十四周学习总结
    2022-2023-120221418《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里(2022-20......
  • 2022-2023-1 20221322《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第十三周作......
  • 2022-2023-1 20221302《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于那个班级 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求  https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14作业目标......
  • Python学习(七):JupyterNoteBook的使用
    1.JupyterNoteBook的安装:pipinstalljupyternotebook  2.打开jupyternotebook:2.1默认打开jupyternotebook,操作记录会保存在C盘或默认目录;  2.2......
  • Springboot学习——路径参数
    一、场景输入不同的路径,调用不同的方法。例如,视频网站中,路径输入不同的模块,调用不同的视频二、使用方法@PathVariable参数表示该参数要从路径中获取//将需要输入的......
  • 驱动开发学习笔记---块设备
    一、块设备简介块设备驱动是存储设备驱动,块设备驱动相比字符设备驱动的主要区别如下:①、块设备只能以块为单位进行读写访问,块是linux虚拟文件系统(VFS)基本的数据传输......
  • 乘法逆元学习笔记
    定义当\(a,b\)满足\(ab\equiv1\pmodp\),\(a,b\)互为\(\pmodp\)的乘法逆元,也记作\(a^{-1}\)和\(b^{-1}\)。前置知识1.费马小定理若\(p\)为质数且\(\gc......
  • 二元一次不定方程学习笔记
    定义含有两个未知数,且未知数项的次数都是\(1\)的不定方程就是二元一次不定方程,一般可以化成下面的形式:\[ax+by=c\]前置知识裴蜀定理定理:对于一个二元一次不定方程,当......
  • 离散对数&BSGS学习笔记
    离散对数定义求\(k\)使得\(a^k\equivn\pmodp\),称\(n\)在模\(p\)意义下以\(a\)为底的对数是\(k\)。如何求离散对数BSGS(BabyStep,GiantStep)大步小步算......