首页 > 其他分享 >docker 镜像使用

docker 镜像使用

时间:2022-12-26 14:33:15浏览次数:41  
标签:bin 容器 使用 镜像 docker xqs Dockerfile

运行容器时,如果镜像在本地不存在,docker就会自动从docker镜像仓库中下载,默认是从docker Hub公共镜像源下载。

 

1. 查看本地镜像

docker images

 

1.1 通过镜像来运行容器

docekr run -it 镜像ID /bin/bash

参数说明:

  -i: 交互式操作。

  -t: 终端。

  /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

 

2. 获取新的镜像

docker pull ubuntu

 

3. 查找镜像

docker search nginx

 

4. 拖取镜像

docker pull nginx

 

5. 删除镜像

docker rmi 镜像ID

 

6. 创建镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改

  1. 从已经创建的容器中更新镜像,并且提交这个镜像

  2. 使用Dockerfile指令来创建一个新的镜像

 

7. 更新镜像

更新镜像之前,我们需要使用镜像来创建一个容器

docker run -it ubuntu:20.04 /bin/bash

在运行容器内使用apt-get update 命令进行更新。

在完成操作之后,输入exit命令退出这个容器。

此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。

docker commit -m="update image" -a="xqs" e218edb10161 xqs/ubuntu:v2

各个参数说明:

  -m: 提交的描述信息

  -a: 指定镜像作者

  e218edb10161:容器 ID

  xqs/ubuntu:v2: 指定要创建的目标镜像名

我们可以使用 docker images 命令来查看我们的新镜像 xqs/ubuntu:v2

启动该镜像

docker run -it xqs/ubuntu:v2 /bin/bash

 

8. 构建镜像

使用docker build, 从零开始创建一个新的镜像。为此,我们需要创建一个Dockerfile文件,其中包含一组指令来告诉docker如何构建我们的镜像

runoob@runoob:~$ cat Dockerfile 
FROM    centos:6.7
MAINTAINER      Fisher "[email protected]"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd xqs
RUN     /bin/echo 'xqs:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用那个镜像源

RUN指令告诉docker在镜像内执行命令,安装了什么

然后我们通过Dockerfile文件,通过docker build命令来构建一个镜像

docker build -t xqs/centos:6.7 .

参数说明:

  -t :指定要创建的目标镜像名

  . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

 

9. 设置镜像标签

我们使用docker tag 命令,为镜像添加一个新的标签

docker tag 860c279d2fec xqs/centos:dev

 

标签:bin,容器,使用,镜像,docker,xqs,Dockerfile
From: https://www.cnblogs.com/xianqingsong/p/17005643.html

相关文章

  • Modbus Poll-使用
    说明Modbus Poll:Modbus主机仿真器,用于测试和调试Modbus从设备。简单来说,可以理解为硬件设备(温湿度、电表、烟感)为从,而我们的采集器为主机,主机采集从设备的数据建立连......
  • axios、代理(proxy)简单使用
    axios简单使用例子importaxiosfrom'axios'exportdefault{name:'Test',data(){return{msg:"Welcome"}},mounted(){//get......
  • AWVS漏洞扫描器的使用
    前言AWVS是一款强大的web漏洞扫描工具,扫描速度快,可针对特定的漏洞进行扫描测试,用于在按全人员对指定企业进行安全扫描以及测试人员对web应用检测漏洞。AWVS使用以及功能......
  • 在 archlinux 中使用 dwm
    title:在archlinux中使用dwmdescription:tags:-linuxdate:2022-12-1006:21update:2022-12-1212:30目录安装启动方式通过startx命令方式启动通过显示管......
  • Termux 使用
    title:Termux使用description:安卓手机上运行Linux系统date:2022-08-2809:47update:2022-08-2809:47tags:-linux-androidhead:--meta-na......
  • freerots 使用cjson后程序溢出处理方法
    新版本修改地方如下/*修改前*/#defineinternal_mallocmalloc#defineinternal_freefree#defineinternal_reallocrealloc/*修改后*/#defineinternal_mallocpvP......
  • 工具使用
    MarkDown参考链接https://blog.csdn.net/konglongdanfo1/article/details/85204312$$\frac{a}{b}$$$$\frac{a}{b}$$$$\sqrt{a+b}$$$$\sqrt{a+b}$$$$\sqrt[n]{......
  • 在iOS中使用NSURLProtocol进行网络代理
    在iOS中使用NSURLProtocol进行网络代理一引言网络能力是互联网应用程序必不可少的功能。随着应用程序的复杂,对网络的依赖性也会逐渐增高。如何统一的处理请求头,统一的处理......
  • clientset 使用
    ClientSet介绍Clientset是调用Kubernetes资源对象最常用的客户端,可以操作所有的资源对象。前面我们说了在 staging/src/k8s.io/api 下面定义了各种类型资源的规范,......
  • Informer 使用
    Informer介绍想要获取资源,可以使用clientset://使用clientset获取Deploymentsdeployments,err:=clientset.AppsV1().Deployments("default").List(context.Bac......