Linux容器——Docker(一)之 基本使用

1.Docker概念

  a.定义:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源

  b.意义:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化

  c.版本:Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了

  d.作用:

    1)提供一次性的环境:比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境

    2)提供弹性的云服务:因为 Docker 容器可以随开随关,很适合动态扩容和缩容

    3)组建微服务架构:通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构

 

 

2.安装Docker(Win7)

  a.访问 http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 下载最新版 DockerToolbox,并安装

    注:若已安装Git,则不用再选择Git组件安装

  b.双击 Docker QuickStart 图标来启动 Docker Toolbox 终端

    注:若Docker未检测到Git安装目录,则需要选择 Git 的 bin 目录下的 bash.exe 文件

  c.若出现 boot2docker.iso 一直无法下载的情况

    1)访问 https://github.com/boot2docker/boot2docker/releases/ 手动下载最新版的 boot2docker.iso

    2)将下好的 boot2docker.iso 复制到 C:\Users\Administrator\.docker\machine\cache 下

    3)双击 Docker QuickStart 启动 Docker Toolbox 终端

 

   d.执行命令 docker version 验证是否安装成功

#查看Docker版本
$ docker version

 

 

 

 

 

3.Docker 容器使用

  a.image定义:image 文件可以看作是容器的模板。Docker 把应用程序及其依赖,打包在 image 文件里面,并根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

  b.查找镜像:访问 https://hub.docker.com/ 查找可用镜像

 

  c.基本指令:

    1)列出本地主机上的镜像

# 列出本机的所有 image 文件。
$ docker image ls
$ docker images

      ·REPOSITORY:表示镜像的仓库源

      ·TAG:镜像的标签,代表这个仓库源的不同个版本

      ·IMAGE ID:镜像ID

      ·CREATED:镜像创建时间

      ·SIZE:镜像大小

 

    2)删除本地主机上的镜像

# 删除 image 文件
$ docker image rm ubuntu:20.04
$ docker rmi ubuntu:20.04

 

    3)下载镜像到本地

#拉取 image 文件到本地
$ docker pull ubuntu:20.04

 

    4)根据镜像启动容器

#根据 image 启动容器
$ docker run -it ubuntu:20.04 /bin/bash

      ·-i: 交互式操作

      ·-t: 终端

      ·ubuntu:20.04:这是指用 ubuntu 20.04 版本镜像为基础来启动容器

      ·/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

 

    5)查看所有的容器

#查看正在运行的容器
$ docker ps
#查看所有容器,包括未运行的
$ docker ps -a

      ·CONTAINER ID: 容器 ID。

      ·IMAGE: 使用的镜像。

      ·COMMAND: 启动容器时运行的命令。

      ·CREATED: 容器的创建时间。

      ·STATUS: 容器状态。

        ·状态有7种: created(已创建) restarting(重启中) running(运行中) removing(迁移中) paused(暂停) exited(停止) dead(死亡)

      ·PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

      ·NAMES: 自动分配的容器名称。

 

    6)启动一个已停止的容器

#启动一个已停止的容器
$ docker start f69dbd3c27c4

 

    7)停止一个容器

#停止一个容器
$ docker stop f69dbd3c27c4

 

    8)重启一个容器

#重启一个容器
$ docker restart f69dbd3c27c4

 

    9)后台启动运行一个

#后台启动运行一个容器
$ docker run -itd --name ubuntu-test ubuntu:20.04 /bin/bash

 

    10)进入容器

#进入容器(如果从这个容器退出,会导致容器的停止)
$ docker attach 1e560fca3906 
#进入容器(如果从这个容器退出,不会导致容器的停止)(推荐
$ docker exec -it 243c32535da7 /bin/bash

 

    11)删除容器

#删除容器
$ docker rm -f 1e560fca3906

 

    12)导出容器

#导出容器
$ docker export a8bf89afcbb6 > ./ubuntu.tar

 

    13)导入容器快照(导成镜像 image)

#导入容器快照
$ cat ./ubuntu.tar | docker import - test/ubuntu:v1
#导入容器快照("./ubuntu.tar"可为路径,也可为url)
$ docker import ./ubuntu.tar test/ubuntu:v1

 

    14)更新镜像(提交容器副本成镜像 image)

#提交容器副本成镜像
$ docker commit -m="this is content for commiting" -a="this is author" d66cef6d68bf runoob/ubuntu:v2

      ·-m:提交的描述信息

      ·-a:指定镜像作者

      ·d66cef6d68bf:容器 ID

      ·runoob/ubuntu:v2:指定要创建的目标镜像名

 

 

4.参考文档:

  https://www.runoob.com/docker/windows-docker-install.html

  http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

posted @ 2020-01-03 11:11  晨M风  阅读(2944)  评论(0编辑  收藏  举报