linux系统之docker(一)——认识docker并搭建docker

一. 什么是docker

在了解docker之前,我们必须先清楚docker和虚拟机的不同

  • 虚拟机
    我们用的传统虚拟机如 VMware ,VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用
    每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统
  • 容器
    容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。
    容器包含应用和其所有的依赖包,但是与其他容器共享内核。
    容器在宿主机操作系统中,以进程的方式运行。
  • docker
    Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。
    总体来说, Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

二.Docker包含的三个基本概念

  • Image(镜像)
    镜像(Image)就是一堆只读层(read-only layer)的统一视角

  • Container(容器)
    容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

  • Repository(仓库)
    Docker 仓库是集中存放镜像文件的场所。
    仓库又可以分为两种形式:
    public(公有仓库)
    private(私有仓库)

三.docker的常用命令

命令作用补充
docker load -i ubuntu.tar导入镜像
docker create为指定的镜像(image)添加了一个可读写层,构成了一个新的容器这个容器并没有运行
docker start vm1启动容器创建了一个进程隔离空间
docker run启动并运行容器docker create和docker start两个命令的组合
docker ps查看容器状态,当前活跃的
docker ps -a查看所有的容器状态
docker attach vm1连接容器
docker inspect vm1查看容器详情
docker stats vm1查看容器资源使用率
docker diff vm1查看容器修改
docker stop vm1停止容器
docker start vm1启动容器
docker rm vm1删除容器只能对非运行态容器执行
docker rm -f vm1强制删除容器
docker rmi ubantu删除镜像
docker images列出镜像
docker images –a命令列出了所有的镜像也可以说是列出了所有的可读层
docker history查看某一个image-id下的所有层
docker kill vm1强制干掉容器
docker restart vm1重启容器

四.安装docker

搭建环境:
物理机:172.25.3.250
docker环境机:172.25.3.100

  • 第一步:将docker的安装包和docker所需要的一些依赖性放在同一个文件夹中并将其发布在http的默认发布页面中。
    在这里插入图片描述

  • 第二步:在需要安装docker的主机中配置相关路径的yum源
    在这里插入图片描述

  • 第三步:直接使用yum 安装docker
    yum install docker-ce -y
    在这里插入图片描述

  • 第四步:查看docker的运行
    [root@docker ~]# systemctl start docker
    [root@docker ~]# docker version
    在这里插入图片描述
    执行后Runtimes: runc这个必须为runc
    runC是一个遵循OCI标准的用来运行容器的命令行工具(CLI Tool),它也是一个Runtime的实现。尽管你可能对这个概念很陌生,但实际上,你的电脑上的docker底层可能正在使用它。
    [root@docker ~]# docker info

在这里插入图片描述

五.利用docker部署game2048,nginx服务并创建一个交互式容器

(1)部署game2048
  • 第一步:获取game2048的镜像
    在这里插入图片描述

  • 第二步:导入2048镜像
    在这里插入图片描述

  • 第三步:查看镜像信息
    在这里插入图片描述

  • 第四步:创建容器game1,并运行
    -d 打入后台 ;-p 端口映射;- -name 指定容器的名字
    [root@docker mnt]# docker run -d -p 80:80 --name game1 game2048
    在这里插入图片描述
    当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放的网络端口(端口范围在Linux系统使用的端口之外,一般都过万)
    当使用-p(小写p)可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。

  • 第五步:查看容器信息
    ##列出镜像
    [root@docker mnt]# docker images
    ##查看容器状态
    [root@docker mnt]# docker ps
    ##查看容器状态
    [root@docker mnt]# docker ps -a
    ##查看端口
    [root@docker mnt]# netstat -antlupe
    ##查看容器信息
    [root@docker mnt]# docker inspect game1

在这里插入图片描述

  • 第五步:验证

在这里插入图片描述

(2)利用docker搭建一个nginx服务

第一步:导入nginx镜像,并查看镜像
[root@docker mnt]# docker load -i nginx.tar
[root@docker mnt]# docker images
在这里插入图片描述
第二步:给nginx镜像重新贴一个标签
[root@docker mnt]# docker history e548f1a579cf
[root@docker mnt]# docker tag nginx:latest nginx:1.13.9
[root@docker mnt]# docker images
在这里插入图片描述
第三步:运行nginx镜像
[root@docker mnt]# docker run -d --name v1 -p 8080:80 nginx

在这里插入图片描述
第四步:测试
在这里插入图片描述

第五步:挂载本机目录到容器里
[root@docker ~]# docker stop vm1
[root@docker ~]# docker rm vm1
[root@docker ~]# docker ps -a
[root@docker ~]# docker run -d -p 8080:80 --name vm2 -v /tmp/docker/:/usr/share/nginx/html/:ro nginx
在这里插入图片描述

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径;也可以指定挂载目录的权限

docker run -d -p 8080:80 --name vm2 -v /tmp/docker/:/usr/share/nginx/html/ nginx
docker run -d -p 8080:80 --name vm2 -v /tmp/docker/:/usr/share/nginx/html/:ro nginx

第六步:测试
在这里插入图片描述

(3)利用docker搭建一个交互式容器

第一步:导入镜像并查看镜像
[root@docker mnt]# docker load -i ubuntu.tar
第二步:运行容器,创建一个交互式的容器镜像
[root@docker mnt]# docker run -it --name vm3 ubuntu
-it表示打开交互式docker界面(ubuntu自带,rhel镜像需要在后面再加bash)
第三步:在容器中查看内核版本
root@ea18269d2300:/# uname -r
在这里插入图片描述
第四步:在物理机中查看内核版本
[kiosk@foundation3 ~]$ uname -r
在这里插入图片描述
由此可以证明,容器是和物理机共用一个内核。

补充:docker交互式界面时
ctrl + pq ##退出容器但不关闭容器
[root@server3 ~]# docker attach vm3 ##可以直接进入容器

ctrl + D ##退出并关闭容器,下次登陆时需要开启
[root@server3 ~]# docker start vm3 ##打开关闭的容器
[root@server3 ~]# docker attach vm3 ##再进入容器

docker rm vm3 删除容器
docker rm -f vm2 强制删除容器
docker rmi ubuntu:vm3 删除镜像

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值