Linux下安装Docker备忘录

  本备忘使用的服务器是阿里云的ECS,2核(vCPU) 4 GiB内存。操作系统为纯的Ubuntu 18.04,也是由阿里云提供的,Ubuntu 18.04 64位 UEFI版。Docker是什么?我的理解就是一种简单的虚拟机,最早用于Web程序的发布。其他更详细的解释,可以都都一下。本备忘使用的服务器是阿里云的ECS,2核(vCPU) 4 GiB内存。操作系统为纯的Ubuntu 18.04,也是由阿里云提供的,Ubuntu 18.04 64位 UEFI版。Docker是什么?我的理解就是一种简单的虚拟机,最早用于Web程序的发布。其他更详细的解释,可以都都一下。

一、Docker的自动安装

1、安装最新版本,使用官方安装脚本自动安装,这是最直接简单的方式:

curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

执行正确会有如下所示:
在这里插入图片描述
下面是当前Docker的一些情况:
在这里插入图片描述

2、 查看docker,是不是安装好了:

systemctl status docker --no-pager

如果安装成功,会出现如下的界面:
在这里插入图片描述

3、 删除docker,天下万物,有安装就要有删除:

sudo systemctl stop docker
sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker

我们为什么学习删除命令,当然是为了学习后面的手工安装

二、Docker的手工安装

  有自动安装的技术,就有手功安装的需求。在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库,之后您可以从仓库安装和更新 Docker 。
1、更新软件包:

sudo apt-get update

这是Linux的特点,每次安装前必做update

2、安装 apt 依赖包,用于通过HTTPS来获取仓库:

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

3、添加Docker 的官方 GPG 密钥,可以是原始的,也可以是镜像的。两个选一个就可以,先来原汁原味的:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

中国科学技术大学镜像的:

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
``

4、设置稳定版仓库,还是有两种,可以是原始的,也可以是镜像的。两个选一个就可以,先来个原汁原味的:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

中国科学技术大学镜像的:

sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ $(lsb_release -cs) stable"

5、安装最新版本的 Docker Engine-Community 和 containerd:

sudo apt-get install docker-ce docker-ce-cli containerd.io

安好之后,可以用 systemctl status docker --no-pager 查看是否安正确。

三、Docker的简单命令

1、只要是软件,就有版本,第一条命令。docker version :显示 Docker 版本信息

docker version

如果执行正确,我这里会显示如下:
在这里插入图片描述

从这里我们或以看出Docker其实分为Client和Server,只是安装的时我们没有细分!

2、党说docker类似于“虚拟机”,那docker是如何取镜像?这就是第二条命令。docker pull:

docker pull ubuntu

输入的三个参数意义如下:

  • docker: 是主命令,基本上的docker命令都要加上
  • pull: 是子命令,取官方的镜像,下载到本地
  • ubuntu: 是镜像的名字

如果执行正确,她会下最新的ubuntu镜像:
在这里插入图片描述
3、 我们下载的“虚拟机”,放什么地方?如何查看?这就是第三条命令:docker images。

docker images

查看下载的镜像,我们只下载了一个ubuntu,如何执行正确,会有如下界面:
在这里插入图片描述

  • REPOSITORY: 表示镜像的仓库源
  • TAG: 镜像的标签
  • MAGE ID: 镜像ID
  • CREATED: 镜像创建时间
  • SIZE: 镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 18.04、15.10 等多个不同的版本,我们可以使用 REPOSITORY:TAG 来定义不同的镜像。

4、 我们完成了所有的准备工作,只为写第一个程序:Hello Docker。

docker run ubuntu /bin/echo "Hello Docker"

如果前面的工作是正确的,那我们可以得到:
在这里插入图片描述

  • docker 是主命令,基本上的docker命令都要加上
  • run 与前面的 docker 组合来运行一个容器
  • ubuntu 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo “Hello Docker” 在启动的容器里执行的命令

5、这个“镜像”运行之后叫“容器”,那又如何查看这些容器呢?下面就介绍,下一个命令:docker ps -a

docker ps -a

我们来分析一下这条命令:

  • docker 是主命令,基本上的docker命令都要加上
  • ps 列出容器
  • -a 显示所有的容器,包括未运行的

如果执行正确,那我们会得到如下结果:
在这里插入图片描述
输出详情介绍:

  • CONTAINER ID: 容器 ID
  • IMAGE: 使用的镜像
  • COMMAND: 启动容器时运行的命令
  • CREATED: 容器的创建时间
  • STATUS: 容器状态 状态有7种:
    • created(已创建)
    • restarting(重启中)
    • running 或 Up(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)
  • NAMES: 自动分配的容器名称

四、Docker的常见命令

1、上条命令都是一暂间就完成的,能不能,执行一条“长命令”?

docker run -i -t ubuntu /bin/bash

各个参数解析:

  • -t: 在新容器内指定一个伪终端或终端
  • -i : 允许你对容器内的标准输入 (STDIN) 进行交互

如果执行正确,我们会看到如下结果:
在这里插入图片描述
现在我们进入了这个“容器”之中,提示符表成了 root@af0e4374300b:/#
由于这个“容器”是最新的ubuntu,现论上版本不超过本属主机的版本。
我们可以通过 ls 命令查看容器里的内容,我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。
在这里插入图片描述

2、前面是在前台运行程序,那么后台启动呢?当然也是可以的:

docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

参数 -d 表示这个容器是在后台运行的
如果执行成功,会有如下结果:
7116477a3a4ce44e4dc71ae3db99575411def09bb708f69aef8e7191a72474cb
这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
但是非常不方便

3、首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:

 docker ps

执行成功,会显示如下结果:
在这里插入图片描述
我们可以通过这个 7116477a3a4celoquent_black 来了解这个容器的执行情况。

4、在宿主主机内使用 docker logs 命令,查看容器内的标准输出:

docker logs eloquent_black

执行成功,会显示如下结果:
在这里插入图片描述
在本例中 7116477a3a4celoquent_black 是等价的,docker logs 7116477a3a4c 结果是一样的

5、我们使用 docker stop 命令来停止容器:

docker stop eloquent_black

停止容器,要用点时间,可能要等几秒钟,或更加长,成功之后回显一个 eloquent_black
可以用 docker ps查看是不是,成功了。

6、停止的容器可以通过 docker restart 重启:

docker restart eloquent_black

重启感觉非常快,与服务类似
当然也可以用 docker ps查看是不是,成功了。

7、使用 docker exec 命令,可以安全进入或退出容器,而容器并不会停止:

docker exec -it eloquent_black /bin/bash

注意一定要加 -it 和要执行的程序 /bin/bash
exit就可以退出这个容器,如果执行正确,可以得到下图:
在这里插入图片描述
可以看出docker做得非常完美,一个多的进程也没有!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值