Docker安装

1.Docker简介        

https://www.docker.org.cn/index.html

docker 码头工人,搬运工

  • docker是一个开源的软件部署解决方案;
  • docker也是轻量级(和linux vm对比)的应用容器框架;
  • docker可以打包、发布、运行任何的应用

2.Docker的核心概念

引动大佬的地址

http://t.csdn.cn/9S6xe

镜像: images

容器: container

仓库: repository

docker 虚拟化和虚拟机对比:

        

Docker的安装与启动

安装前提:

     centos 7  64位

     centos内核版本3.10以上

             查看内核版本: uname -r  或者uname -a

yum更新为最新

    yum update   (可选,不要更新)

安装docker依赖包:

    yum-utils  提供了 yum-config-manager 实用程序,用于设置yum源。

    devicemapper(内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构) 存储驱动需要 device-mapper-persistent-data 和 lvm2(Logical Volume Manager)逻辑卷管理,它是对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性。 

  yum install -y   yum-utils  device-mapper-persistent-data   lvm2

设置镜像仓库:

  yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   (阿里)

  yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  (官网)

查看仓库中所有docker版本:

  yum list docker-ce --showduplicates | sort -r

安装docker:

   yum install -y docker-ce

 


Docker CE 和 Docker EE。Docker CE 即社区免费版,Docker EE 即企业版,  强调安全,但需付费使用。

启动docker:

      systemctl start docker

      service docker start

运行hello world : 

docker run hello-world

Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

错误原因:

      docker默认的源为国外官方源,下载速度较慢,可改为国内,加速

Docker 官方中国区

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

中国科技大学

https://docker.mirrors.ustc.edu.cn

阿里云

https://pee6w651.mirror.aliyuncs.com

vim /etc/docker/daemon.json

复制下面内容:

{

  "registry-mirrors": 
   ["https://pee6w651.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"]

}

重启docker:

service docker restart

再次运行:

 docker run hello-world

1)docker客户端联系docker服务端

2) docker 服务端会从docker hub下载 hello-world镜像到本地

3)docker服务端会根据镜像创建容器

4) 会把hello from docker!以流的方式给docker客户端, 发送它到终端

3.docker常用命令

查看版本:

docker version

查看详情:

docker info

列出所有docker的用法以及所有命令:

docker --help

3.1 镜像命令

列出本地的镜像

docker images

参数:

--no-trunc:显示完整的镜像信息

-a:列出本地的所有镜像(包括不完整/损坏的镜像)

-q:只显示镜像的id

-qa:可以连用,显示所有的镜像id(包括不完整/损坏的镜像) - q -a

--digests:显示镜像的摘要信息

结果详解:

REPOSITORY # 镜像仓库

TAG # 镜像标签

IMAGE ID # 镜像ID

CREATED # 镜像创建时间

SIZE # 镜像大小

用于从 Docker Hub(https://hub.docker.com)中搜索指定的镜像

docker search spring-boot

参数:

-no-trunc:显示完整的镜像信息(description)

docker search spring --no-trunc

--limit n 限制结果多少条

docker search hello --limit 2

docker search tomcat

结果详解:

NAME # 镜像仓库

DESCRIPTION # 镜像描述信息

STARS # 镜像收藏数

OFFICIAL # 是否为docker官方发布的镜像

AUTOMATED # 是否为自动化构建的镜像

拉取镜像:

docker pull 仓库名:TAG (仓库名和标签名使用:隔开,不指定默认最新版本)

docker pull tomcat:8.5

docker pull tomcat:8.0

本地存放目录:/var/lib/docker

查看目录大小: du -sh docker

查看拉取结果:

docker images

删除镜像:

docker rmi [OPTIONS] IMAGE[IMAGE...]

-f --force=false 强制删除镜像(正在使用的也删除)

删除单个镜像

mi后跟镜像的【REPOSITORY仓库名+TAG标签名】,也可以根据ID删除:如:

docker rmi hello-world:latest

docker rmi -f hello-world:latest

再次下载运行:docker run hello-world

查看:docker images

按照镜像id删除:

docker rmi -f fce289e99eb9

删除相同镜像名称的多TAG镜像

如果我们需要删除相同iamgeName,但TAG的不同的多个镜像,只需在rmi后直接跟这些镜像的iamgeName即可:

docker rmi tomcat

这样就可以删除所有该名称的镜像。

删除批量镜像

rmi命令并没有删除批量镜像的命令,但是我们可以在“$()”包裹查询表达式,通过表达式的结果来批量删除镜像。

这里我们需要利用刚才使用的“通过镜像名搜索相关的镜像”(docker images 镜像名)指令来删除相关信息:

docker rmi -f $(docker images -q tomcat)

使用“-q”意味着只返回镜像的ID,所以上面的指令会删除所有仓库名为“centos”的镜像

删除所有镜像:

docker rmi -f $(docker images -qa)

3.2 容器命令

运行容器

使用命令:docker run --name container-name -d image-name:tag名字

--name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:表示后台运行容器(以守护进程方式运行-d =deamonize)

image-name:指定运行的镜像名称以及 Tag 

实例:

显示所有镜像:docker images

运行tomcat容器:docker run --name myTomcat -d tomcat:8.5

查看容器

docker ps

-a:显示所有的容器信息(包含已经停止和正在运行中的所有容器)

-q:显示容器的id

-qa:显示所有容器的id(包含已经停止和正在运行中的所有容器)

-l:显示最近所创建过的一个容器

-n:显示最近所创建过的n个容器

docker ps -n 1

结果详解:

CONTAINER ID:容器 di

IMAGE:镜像名称:Tag

COMMAND:命令

CREATES:容器创建的时刻

STATUS:容器当前的状态 (up 表示运行、Exited 表示停止运行)

PORTS:镜像程序使用的端口号

停止容器

使用 docker stop container-name/container-id 命令进行停止容器运行,指定容器名或者容器 id 即可

docker stop 301888fe8c05

docker stop myTomcat

启动容器

使用 docker start container-name/container-id 命令启动停止运行的容器,同理可以根据 容器名或者 容器 id 进行启动

docker start 301888fe8c05

docker start myTomcat

登录容器

使用 docker exec -it CONTAINER_ID bash 命令登录容器

 exec:       Run a command in a running container(在运行的容器中运行命令)

       exec -i:  --interactive(相互作用的)      Keep STDIN open even if not attached(即使没有连接,也要保持STDIN打开)

       exec -t:   --tty        Allocate a pseudo-TTY(分配一个 冒充的终端设备)

docker exec -it 461227b45db1 bash

退出:exit

删除容器

使用 docker rm container-id 命令 删除容器,删除容器前,必须先停止容器运行,根据 容器 id 进行删除(rm 参数是删除容器,rmi 参数是删除镜像)

docker rm 301888fe8c05

端口映射

使用命令:docker run --name container-name -d -p 服务器端口:Docker 端口 image-name

--name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:表示后台运行容器

image-name:指定运行的镜像名称以及 Tag 

-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问

docker run --name myTomcat -d -p 8090:8080 tomcat:8.5

8.5无法正常访问,使用8.0

docker pull tomcat:8.0 拉取镜像

docker run --name tomcat8 -d -p 8090:8080 tomcat:8.0 使用镜像创建容器

docker ps 查看进程

docker start tomcat8 启动容器

访问:

http://ip:8090/

容器日志

使用 docker logs container-name/container-id 命令 可以查看容器日志信息,指定容器名或者 容器 id 即可

docker logs tt80

docker logs a9319038cac2

docker ps -a

docker start myTomcat

docker logs myTomcat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回首以是故人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值