docker 镜像使用

运行容器时,如果镜像在本地不存在,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 "fisher@sudops.com"

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

 

posted @ 2022-12-26 14:24  xqs42b  阅读(118)  评论(0编辑  收藏  举报