在ubuntu中学习docker

      为学习docker,买了一个U盘启动的ubuntu。
       遗憾的是安装grub总是有问题。

      先在win10开个虚拟机吧。
     安装麒麟18.04,使用不太顺手。又安装了麒麟19.04。Docker顺利运行:
进入麒麟,
打开MATE终端:

 

sudo  -i  切换到root用户;
apt  install  docker.io


将会同时安装下列软件:
    bridge-utils  cgroupfs-mount  containerd  git  git-man  liberror-perl  pigz  runc
    ubuntu-fan
建议安装:
    aufs-tools  btrfs-progs  debootstrap  docker-doc  rinse  zfs-fuse  |  zfsutils
    git-daemon-run  |  git-daemon-sysvinit  git-doc  git-el  git-email  git-gui  gitk
    gitweb  git-cvs  git-mediawiki  git-svn
下列【新】软件包将被安装:
    bridge-utils  cgroupfs-mount  containerd  docker.io  git  git-man  liberror-perl
    pigz  runc  ubuntu-fan
升级了  0  个软件包,新安装了  10  个软件包,要卸载  0  个软件包,有  0  个软件包未被升级。
需要下载  57.2  MB  的归档。
解压缩后会消耗  291  MB  的额外空间。
您希望继续执行吗?  [Y/n]  y

    尝试一下入门教程:
  
    第一个Alpine  Linux容器
    在这个实验室中,您将运行一个流行的、免费的轻量级容器,并探索容器如何工作的基础知识,Docker引擎如何执行容器并将容器彼此隔离。
1.0运行您的第一个容器
是你动手的时候了!就像所有技术性的东西一样,“hello  world”应用程序是一个很好的起点。键入或单击下面的代码运行您的第一个Docker容器: 

docker  container  run  hello-world


Unable  to  find  image  'hello-world:latest'  locally
latest:  Pulling  from  library/hello-world
1b930d010525:  Pull  complete  
Digest:  sha256:451ce787d12369c5df2a32c85e5a03d52cbcef6eb3586dd03075f3034f10adcd
Status:  Downloaded  newer  image  for  hello-world:latest

Hello  from  Docker!
This  message  shows  that  your  installation  appears  to  be  working  correctly.

To  generate  this  message,  Docker  took  the  following  steps:
  1.  The  Docker  client  contacted  the  Docker  daemon.
  2.  The  Docker  daemon  pulled  the  "hello-world"  image  from  the  Docker  Hub.
        (amd64)
  3.  The  Docker  daemon  created  a  new  container  from  that  image  which  runs  the
        executable  that  produces  the  output  you  are  currently  reading.
  4.  The  Docker  daemon  streamed  that  output  to  the  Docker  client,  which  sent  it
        to  your  terminal.

这就是你的第一个容器。hello-world容器输出告诉您刚刚发生了什么。实际上,在您的终端中运行的Docker引擎试图找到一个名为hello-world的映像。由于您刚刚开始,没有映像存储在本地(无法找到映像…),所以Docker  engine将前往其默认的Docker注册表,即Docker  Store,以查找名为“hello-world”的映像。它在那里找到映像,将其拉下,然后在容器中运行它。hello-world的唯一功能是输出您在终端中看到的文本,然后容器退出。
1.1Docker的映像
在这个实验室的其余部分中,您将运行一个Alpine  Linux容器。Alpine是一个轻量级的Linux发行版,因此它可以快速下拉并运行,这使得它成为许多其他映像的一个流行起点。
首先,让我们在我们的终端运行以下代码:
  docker  image  pull  alpine


Using  default  tag:  latest
latest:  Pulling  from  library/alpine
9d48c3bd43c5:  Pull  complete  
Digest:  sha256:72c42ed48c3a2db31b7dafe17d275b634664a708d901ec9fd57b1529280f01fb
Status:  Downloaded  newer  image  for  alpine:latest

pull命令从Docker注册表中获取alpine映像并将其保存在我们的系统中。在本例中,注册表是Docker  Store。你可以改变注册表,但那是另一个实验。
您可以使用docker  image命令查看系统上所有映像的列表。
docker  image  ls

1.1  Docker容器运行
太棒了!现在让我们基于此映像运行Docker容器。为此,您将使用docker  container  run命令。
    docker  container  run  -it  alpine  /bin/sh
现在您在容器中运行Linux  shell,您可以尝试一些命令,比如ls  -l、uname  -a和其他命令。注意Alpine是一个小型Linux操作系统,因此可能缺少几个命令。通过键入Exit命令退出shell和容器。
好的,我们说我们已经在一个单独的容器实例中运行了上面的每个命令。我们可以使用docker容器ls命令查看这些实例。docker  container  ls命令本身显示了当前运行的所有容器。由于没有运行容器,所以您将看到一个空行。让我们尝试一个更有用的变体:
    docker  container  ls  -a
您现在看到的是您运行的所有容器的列表。请注意,STATUS列显示这些容器已经退出了一段时间。

1.2容器隔离
在上面的步骤中,我们在docker  container  run的帮助下通过容器实例运行了几个命令。docker容器ls  -a命令向我们展示了列出的几个容器。为什么列出这么多集装箱,如果他们都来自alpine的映像?
这是Docker容器世界中的一个关键安全概念!尽管每个docker  container  run命令使用相同的alpine映像,但是每个执行都是一个单独的、隔离的容器。每个容器都有一个单独的文件系统,并在不同的名称空间中运行;默认情况下,容器无法与其他容器交互,即使是来自同一映像的容器。让我们再做一个练习来学习更多关于隔离的知识。

专业提示:不使用完整的容器ID,您可以只使用前几个字符,只要它们足够惟一地标识一个容器。因此,我们可以简单地使用“3030”来标识上面示例中的容器实例,因为这个列表中没有其他容器以这些字符开头。

我们将从最简单的映像创建形式开始,其中只需将容器实例之一作为映像提交。然后我们将探索一个更强大和有用的方法来创建映像:Dockerfile。然后,我们将看到如何通过检查获得映像的详细信息,并探索文件系统,以便更好地理解底层发生了什么。

继续学习请参考https://training.play-with-docker.com/dev-stage1/

在Ubuntu中学习docker 

http://www.rsqdz.net:907/论坛/bbs_topicread.aspx?T_id=1578&F_page=1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值