《‘狂’人日记》---Docker从入门到进阶之基础操作(二)

简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 本篇文章将向您展示常用的Docker技术,让您快速入门

书接上文,讲到了Docker的安装以及ps 和 run命令,那么这里就为大家介绍镜像的命令

1.镜像常用命令

1.1 使用语法和参数

[root@base ~]# docker image --help

Usage:  docker image COMMAND

Manage images

Options:
      --help   Print usage

Commands:
  build       从Dockerfile构建映像
  history     显示image的历史
  import      从压缩文件中导入内容以创建文件系统映像
  inspect     显示一个或多个image的详细信息
  load        从tar存档文件或STDIN加载映像
  ls          image列表
  prune       删除未使用的image
  pull        从注册表中提取映像或存储库
  push        将映像或存储库推入注册表
  rm          删除一个或多个image
  save        保存一个或多个image到tar存档(默认流到STDOUT)
  tag         创建指向SOURCE_IMAGE的标签TARGET_IMAGE

Run 'docker image COMMAND --help' for more information on a command.

1.2 常用命令介绍(部分)

1.2.1 ls --- image列表

1.2.1.1 使用语法

Usage:  docker image ls [OPTIONS] [REPOSITORY[:TAG]]

List images

Aliases:
  ls, images, list

Options:
  -a, --all             显示所有图像(默认隐藏中间图像)
      --digests         显示摘要
  -f, --filter filter   根据提供的条件过滤输出
      --format string   使用Go模板打印漂亮的图片
      --help            打印使用
      --no-trunc        不截断输出
  -q, --quiet           只显示数字id

1.2.1.2 -a 列出所有Image

[root@base ~]# docker image ls -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-7            latest              7e989e1e46e7        2 weeks ago         380 MB
docker.io/nginx     latest              b692a91e4e15        3 weeks ago         142 MB
[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-7            latest              7e989e1e46e7        2 weeks ago         380 MB
docker.io/nginx     latest              b692a91e4e15        3 weeks ago         142 MB

image.png

1.2.1.3 -q 只显示数字id

[root@base ~]# docker image ls -q
7e989e1e46e7
b692a91e4e15

1.2.2 rm --- 删除一个或多个image

1.2.2.1 使用语法

Usage:  docker image rm [OPTIONS] IMAGE [IMAGE...]

Remove one or more images

Aliases:
  rm, rmi, remove

Options:
  -f, --force      强制移除image
      --help       Print usage
      --no-prune   Do not delete untagged parents

1.2.2.2 -f 删除镜像

[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-7            latest              7e989e1e46e7        2 weeks ago         380 MB
docker.io/nginx     latest              b692a91e4e15        3 weeks ago         142 MB
[root@base ~]# docker image rm -f 7e989
Untagged: centos-7:latest
Deleted: sha256:7e989e1e46e7f23498f0ca7da2a9ec7794ff4d7f06b77f7ef6e90222cdb3d346
[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              b692a91e4e15        3 weeks ago         142 MB

1.2.2.3 rmi --- 等同于 image rm

[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              b692a91e4e15        3 weeks ago         142 MB
[root@base ~]# docker rmi b692
Untagged: docker.io/nginx:latest
Untagged: docker.io/nginx@sha256:ecc068890de55a75f1a32cc8063e79f90f0b043d70c5fcf28f1713395a4b3d49
Deleted: sha256:b692a91e4e1582db97076184dae0b2f4a7a86b68c4fe6f91affa50ae06369bf5
Deleted: sha256:20fe57e949a4f70bf714590d9d5a78d158d12f4619d148619427a86dfc2e5a7a
Deleted: sha256:042a89e2d80d230c47e0f2add6e13a5958cf18b039f04a3751200937ef76ba03
Deleted: sha256:9e20f968300754f2d3ace5b726448b9a4249bb8196aded53b36ae8b6d3e8c174
Deleted: sha256:15e9cede496de643a978a58c0b49ef7beea83b368dfefc2e46fa0e8dd589f099
Deleted: sha256:d2850ddb0c4ca9f6289f624b27f987873e556c41250f5c5ed47a69c6c2529e4b
Deleted: sha256:92a4e8a3140f7a04a0e5a15793adef2d0e8889ed306a8f95a6cfb67cecb5f212
[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

image.png

1.2.3 build --- 从Dockerfile构建映像

1.2.3.1 使用语法(常用)

Usage:  docker image build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Options:
      --build-arg list             设置构建时变量(默认[])
      --cache-from stringSlice     将镜像视为缓存源
      --cgroup-parent string       可选父容器cgroup
      --compress                   使用gzip压缩构建上下文
      --cpu-period int             限制CPU CFS(完全公平调度程序)周期
      --cpu-quota int              限制CPU CFS(完全公平调度程序)配额
  -c, --cpu-shares int             CPU份额(相对权重)
      --cpuset-cpus string         允许执行的cpu(0-3、0、1)
      --cpuset-mems string         允许执行的MEMs (0- 3,0,1)
      --disable-content-trust      跳过图像验证(默认为true)
  -f, --file string                Dockerfile的名称(默认为'PATH/Dockerfile')
      --force-rm                   总是删除中间容器
      --help                       Print usage
      --isolation string           容器隔离技术
      --label list                 设置image的元数据(默认[])
  -m, --memory string              内存限制
      --memory-swap string         交换限制等于内存加上交换:'-1'来启用无限交换
      --network string             在构建期间为RUN指令设置网络模式(默认为"default")
      --no-cache                   在构建映像时不使用缓存
      --pull                       总是尝试拉出更新版本的image
  -q, --quiet                      关闭构建输出并在成功时打印image ID
      --rm                         在成功构建后移除中间容器(默认为true)
      --security-opt stringSlice   安全选项
      --shm-size string            “/dev/shm”的大小,默认为64MB
  -t, --tag list                   以' Name:tag'格式命名和可选的标记(default [])
      --ulimit ulimit              Ulimit选项(默认[])
  -v, --volume list                设置构建时绑定挂载(默认[])

1.2.3.2 构建一个带有openssh-server的容器镜像

[root@base ~]# cat Dockerfile
FROM centos:7

RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

#RUN useradd admin
#RUN echo "admin:admin" | chpasswd
RUN echo "root:123456" | chpasswd
#RUN echo "admin  ALL=(ALL)    ALL" >> /etc/sudoers

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
[root@base ~]# docker build -t ssh-server .

image.png

image.png

1.2.3.3 从构建的镜像拉起容器

[root@base ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ssh-server          latest              4e28f6e4fc6a        15 minutes ago      390 MB
docker.io/centos    7                   eeb6ee3f44bd        11 months ago       204 MB
[root@base ~]# docker run -dit --name sshd -p 10022:22 ssh-server
53b462f31348b9fc0bdda53084f374782d1c073155c5445434d555d988a6264d
[root@base ~]# ssh localhost:10022
ssh: Could not resolve hostname localhost:10022: Name or service not known
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS                     PORTS                   NAMES
53b462f31348        ssh-server          "/usr/sbin/sshd -D"   11 seconds ago      Up 10 seconds              0.0.0.0:10022->22/tcp   sshd
88958f0f4fc8        7e989e1e46e7        "/bin/bash"           2 weeks ago         Exited (137) 2 weeks ago                           centos7

image.png

目录
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
101 2
|
10天前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
52 5
docker入门-快速学会docker
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
1月前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
1月前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
85 2
|
1月前
|
Kubernetes Linux Docker
容器化技术Docker入门与实践
容器化技术Docker入门与实践
56 0
|
1月前
|
Kubernetes Docker 容器
掌握Docker容器化技术:从入门到实战
掌握Docker容器化技术:从入门到实战
31 0
|
Kubernetes Cloud Native 算法
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
209 0
【Docker】企业进阶实战【Docker-Compose/Stack/Secret/Swarm/Config】
|
SQL NoSQL Cloud Native
【云原生】1.5 Docker 进阶实战
创建一个redis (mkdir redis),然后打开 redis(cd redis),准备好配置文件(vi redis.conf),输入 :wq 退出并保存。 redis使用自定义配置文件启动(记得要添加安全组)
124 0
【云原生】1.5 Docker 进阶实战
|
安全 测试技术 API
《Docker进阶与实战》——导读
本节书摘来自华章社区《Docker进阶与实战》一书中的目录,作者华为Docker实践小组,更多章节内容可以访问云栖社区“华章社区”公众号查看
1988 0

热门文章

最新文章