docker的基本使用

一、 实验前置知识

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二、 实验步骤

第一步安装docker

1.实验环境环境配置:

系统镜像版本:ubuntu-20.04.1-desktop-amd64.iso

Docker版本:docker version 19.03.8

VMware Workstation版本: VMware® Workstation 15 Pro

2.右击桌面>在终端打开,此步操作是为了打开linux下的命令行界面,如图

docker的基本使用
  1. docker运行时需要到管理员用户权限,现在我们是普通用户,终端内输入命令 su root切换为root用户。

如果是第一次安装ubuntu,管理员用户密码未设置,此时输入sudo passwd root设置root密码,如图

docker的基本使用

3.ubuntu下安装docker

apt-get update //更新软件源中的所有软件列表

docker的基本使用

apt install docker.io//安装docker

docker的基本使用

docker -v //查看版本

docker的基本使用

第二步使用docker

1.从docker镜像仓库下载docker镜像,下载镜像速度受网速波动和docker镜像源影响

docker pull xfv5/ubuntu:php5.5 //下载镜像

docker的基本使用

2.如果网速不好可本地导入提供的muban.tgz镜像

docker load -i muban.tgz

docker的基本使用

3.查看本地镜像仓库镜像

docker images

docker的基本使用

4.启动本地镜像,使用image id 前三位即可

docker run -d -p80:80 7de(镜像id)

docker的基本使用

//启动镜像,将镜像内的80端口映射到本地的80端口上面;

-p80:80 第一个80为本地80端口,第二个80为镜像内服务端口

5.查看进程

docker ps

docker的基本使用

//查看运行镜像的容器进程

6.进入容器

docker exec -it e4d(容器id) /bin/bash

//进入容器,使用进程前三位id即可(可以理解为进入操作系统进行操作)

docker的基本使用

7.此时我们相当于进入了一个linux的操作系统,我们可以尝试输入一些常用的linux命令看下,比如ls,pwd等。

docker的基本使用

8.更改容器内容

vim 1.txt //在容器内新建1.txt文档并且输入 I’m hero

docker的基本使用

http://127.0.0.1:80/1.txt //本机进行访问,验证修改是否生效

docker的基本使用

容器内输入exit,退出容器到宿主机

docker的基本使用

9.文件交互

docker cp 2.txt e4d(容器id):/var/www/html/

//拷贝宿主机当前目录1.txt到容器中;

e4d 是当前正在运行容器进程的前三位;

/var/www/html 是当前容器内网站的根目录;

docker的基本使用

http://127.0.0.1:80/2.txt //本机进行访问,验证修改是否生效

docker的基本使用

10.生成新的镜像

docker commit e4d(容器id) hellword:1.0

//将更改后的容器保存为新的镜像(如果不将更改后的容器保存为新的镜像,当前进程停止后,容器内新增数据消失);

e4d为当前容器进程;

hellword:1.0 分别对应镜像仓库中REPOSITORY和TAG ,大家可以理解为这是新生成镜像的名称。

docker的基本使用

11.运行新生成的镜像

docker run -d -p81:80 deb //启动,因本地80端口被占用,所以我们将镜像80端口映射到本地的81端口上面

docker的基本使用

12.验证修改的内容是否在镜像内

访问http://127.0.0.1:81/2.txt

docker的基本使用

13.将修改完的镜像导出

docker save 7de(镜像id) |gzip > helloworld.tgz

//将镜像id前三位是7de的镜像导出到本地,并且将其命名为muban.tgz

docker的基本使用

删除镜像和容器

删除docker中的镜像我们可以使用如下命令:

docker rmi 镜像id

删除docker中的容器可以使用如下命令:

docker rm 容器id

使用如下命令可以查看当前正在运行的容器

docker ps

对于已退出的容器,可以使用如下命令进行查看:

docker ps -a

例如:
查看当前正在运行的容器:

docker的基本使用
查看所有镜像:
docker的基本使用
查看所有已退出的容器:
docker的基本使用
下载我们要删除镜像”button-api”:
docker的基本使用
此时发现删除失败,根据提示信息可以知道,当前我们要删除的镜像正在被已停止id为”a4516aee2e7a”的容器所使用,所以我们必须先删除这个已停止的容器,才可以删除镜像。
docker的基本使用
删除容器之后重新删除”button-api”镜像:
docker的基本使用
现在发现已删除成功。

重新查询所有镜像,发现”button-api”已被删除:

docker的基本使用

在删除时还可能遇到如下情况,多个镜像id相同,此时删除也会不成功:

docker的基本使用
此时我们还可以根据”REPOSITORY”和”TAR”进行删除:

docker的基本使用

docker的基本使用

Original: https://www.cnblogs.com/ggc-gyx/p/16194943.html
Author: ʚɞ无恙
Title: docker的基本使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609261/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Shell脚本完成IOS平台下的多目录和多架构编译(调用Makefile一起完成)

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/cy568searchx/p/5735429.htmlA…

    Linux 2023年5月28日
    0110
  • Linux 0.11源码阅读笔记-总览

    Linux 0.11源码阅读笔记-总览 阅读源码的目的 加深对Linux操作系统的了解,了解Linux操作系统基本架构,熟悉进程管理、内存管理等主要模块知识。 通过阅读教复杂的代码…

    Linux 2023年5月27日
    097
  • 人人都写过的5个Bug!

    大家好,我是良许。 计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,…

    Linux 2023年5月27日
    0120
  • Linux命令

    Linux命令是对Linux系统进行管理的命令,对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核…

    Linux 2023年5月27日
    088
  • Redis集群搭建准备,了解一致性哈希算法和哈希槽

    一致性哈希是在哈希取余算法基础之上优化的,分布式缓存数据变动和映射问题,某个机器宕机了,分母数量改变了,自然取余数不对了。用于解决分布式缓存系统中的数据选择节点存储问题和数据选择节…

    Linux 2023年5月28日
    087
  • Docker最常用的镜像命令和容器命令

    一、镜像相关命令 官方文档:https://docs.docker.com/referenc 1.1查看镜像 [root@localhost ~]# docker images R…

    Linux 2023年5月27日
    091
  • Linux指令_曾佳豪

    一、基础指令 1、ls指令 含义:ls (list) 用法1 :#ls 含义:列出当前工作目录下所有文件/文件夹的名称 [En] Meaning: list the names o…

    Linux 2023年5月27日
    0114
  • 服务器监控 -TOP命令详解(下)

    用jmeter做性能测试的时候,top命令是最简单扼要的查看服务器CPU和内存占用情况的命令。如下图就是TOP命令展示出来的结果,下面对结果进行详细解说。 Mem 物理内存: to…

    Linux 2023年6月8日
    082
  • linux 普通分区与lvm分区

    安装linux系统时 有时候会提示lvm分区与标准分区 首先普及一下lvm分区:lvm是 logical volume manager (逻辑卷管理),linux环境下对磁盘分区的…

    Linux 2023年5月27日
    093
  • CH9102与CP2102应用注意事项

    CH9102(WCH)与CP2102的不同子型号之间可实现pintopin兼容,可以在不更改硬件设计的前提下实现不同型号间快速切换与产品应用。CH9102的子型号包括:CH9102…

    Linux 2023年6月7日
    087
  • idea 运行 tyarn 命令提示系统禁止运行脚本

    无法加载文件D:……….(报错信息。。。),因为在此系统上禁止运行脚本,有关详细信息,请参阅 https:/go.microsoft.com/f…

    Linux 2023年6月13日
    081
  • linux学习之搭建Apache 服务器

    本实验的主要任务是在CentOS操作系统中搭建Apache 服务器,练习文档根目录、首页文件、相关访间控制规则的配置。 ‎【实验目的】 ‎(1) 理解Apache 服务器主配置文件…

    Linux 2023年6月13日
    096
  • 三款优秀的替代Xshell的SSH软件

    在之前的文章介绍个, 由于公司禁止使用xshell, 让我很是难受了一阵, 因为一直无法找到好的工具来替代xshell, 前面文章中提到的那些对我来时功能还是太单一了, 界面也不够…

    Linux 2023年5月28日
    0842
  • 通过域名查找IP地址

    1,打开cmd 2,敲入命令:nslookup 3,输入域名,如,www.baidu.com 4,得到address即IP地址 Original: https://www.cnbl…

    Linux 2023年6月8日
    089
  • MIT6.828——Lab3 PartA(麻省理工操作系统实验)

    Lab3 Part A MIT6.828——Lab1 PartA MIT6.828——Lab1 PartB Lab2内存管理准备知识 MIT6.828——Lab2 内核维护有关用户…

    Linux 2023年5月27日
    0100
  • WPF 开源二维绘画小工具 GeometryToolDemo 项目

    这是一个演示 WPF 进行二维绘画的小工具 Demo 项目,基于 MIT 协议在 GitHub 上完全开源 这是一个演示 WPF 进行二维绘画的小工具 Demo 项目,基于 MIT…

    Linux 2023年6月6日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球