Docker入门篇 Docker介绍,Docker安装,Docker 常用命令

Docker 简介

Docker是什么?

docker 官网 https://www.docker.com/

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

Docker 的服务运行依赖余服务的镜像,不同的服务可以运行不同的镜像

Dokcer 官方镜像仓库 https://hub.docker.com/

在这里插入图片描述

Docker形式与传统VM对比

在这里插入图片描述

先看看传统VM的架构
在这里插入图片描述

在传统模式的VM中存在以下问题:
1. 资源过剩的问题,很多计算机的硬件配置,即使不能完全满足峰值性能的要求,也往往会有大量时间处于硬件资源闲置的状态。
2. 软件兼容性问题,因为业务需要,两个或者多个软件之间冲突,或者需要同一个软件的不同版本。
3. 配置复杂,在传统vm搭建服务的时候均是将应用服务安装在OS层上的,如果服务出现了问题就需人工去排查配置文件,查看log等一些维护操作,运维人员也很有可能误操作,删除了配置文件,或者修改了一些服务的配置文件,导致服务无法启动

为了解决软件冲突,只能配置多台计算机,或者很麻烦的在同一台电脑上安装多个操作系统,通过重启来进行切换。显然这两个方案都有其缺点:多台计算机成本太高,多操作系统的安装、切换都很麻烦。在硬件性能过剩的时候,硬件虚拟化的普及就很自然而然的提出来了。

接着再来看看Docker的运行方式
在这里插入图片描述
在Docker的架构中,以上vm存在的问题都将迎刃而解,它有以下特点

1. 简化配置,构建一次后打包后就可以用作测试环境,也可以用作生产环境或与预生产环境,可以省去很多测试环节。比如一台服务器可以进行测试多个版本的测试,不用等待。
2. 可以解决开发人员部署环境的困难,好比如一个刚来的新同事安装环境可能需要半天时间,但要是直接运行一个已经配好的容器的话就方便多了。
3. 应用隔离,服务器整合,一个服务器可以用docker部署多套业务,并且隔离性很高(除了虚拟机)。
4. 对于开发来说部署好之后到处运行便于开发调试。
5. 可以减少资源的利用,和虚拟机比较省去了很多不必要的资源,损失的隔离性其他的有点足以弥补啦。
6. 对与运维来说,可以快速的进行扩容,减少原利用率
7. 每个小的服务都可以进行集群,docker对资源的利用比较小,可以在一台服务器启动多台,相比其他产品对服务器的I/O使用上要多例如(启动storm)。
8. .可以多平台部署,启动服务速度快,毫秒级。
9. 省钱

如何安装Docker?

配置yum 源

##下载epel源
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo   
##下载Centos7系统源
[root@node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
##下载docker社区版安装包源
[root@node1 ~]# wget -O /etc/yum.repos.d/Docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   

安装Docker社区版

##安装docker社区版
[root@node1 ~]# yum -y install docker-ce 
##启动docker
[root@node1 ~]# systemctl start docker 
##设置开机启动
[root@node1 ~]# systemctl enable docker  

运行测试

##下载nginx镜像到本地
[root@node1 ~]# docker pull nginx     
Using default tag: latest
latest: Pulling from library/nginx
fc7181108d40: Pull complete 
c4277fc40ec2: Pull complete 
780053e98559: Pull complete 
Digest: sha256:bdbf36b7f1f77ffe7bd2a32e59235dff6ecf131e3b6b5b96061c652f30685f3a
Status: Downloaded newer image for nginx:latest
##后台运行 nginx镜像,并映射80端口到本地的80端口
[root@node1 ~]# docker run -d -p 80:80 nginx 
##查看正在运行的镜像
[root@node1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
fc54df60aaf9        nginx               "nginx -g 'daemon of…"   52 seconds ago      Up 51 seconds       0.0.0.0:80->80/tcp   vigilant_mirzakhani
##访问测试
[root@node1 ~]# elinks --dump 127.0.0.1
                              Welcome to nginx!

   If you see this page, the nginx web server is successfully installed and
   working. Further configuration is required.

   For online documentation and support please refer to [1]nginx.org.
   Commercial support is available at [2]nginx.com.

   Thank you for using nginx.

References

   Visible links
   1. http://nginx.org/
   2. http://nginx.com/

Doker 常用命令

1.	docker ps ##查看所有正在运行的容器
2.	docker info ##查看docker信息
3.	dcker images ##查看所有存储在本地的镜像
4.	docker ps -a ##查看所有状态的容器,包括异常退出的
5.	docker rm <CONTAINER ID|CONTAINER NAMES> ##删除指定的容器(需要先停止,或者容器处于非正常运行状态下)
6.	docker stop <CONTAINER ID|CONTAINER NAMES> ##停止正在运行的容器
7.	docker start  <CONTAINER ID|CONTAINER NAMES> ##启动已经停止的容器
8.	docker rmi <image:tag | IMAGE ID > ## 删除指定的本地镜像
9.	docker exec ##在运行的容器中执行命令
10.	docker run ##运行容器,需跟参数及镜像名称,部分参数如下
	-d  ##后台运行
	-v ##映射本地目录
	-p ##映射端口
	-e ##设置容器环境变量
	-t ##分配一个伪终端
	-i ##保持链接,通常跟-t一起使用

示例:

停止正在运行的容器
[root@node1 ~]# docker stop fc54df60aaf9 
启动以停止的容器
[root@node1 ~]# docker start fc54df60aaf9
下载公网镜像到本地
[root@node1 ~]# docker pull nginx:latest
删除本地镜像
[root@node1 ~]# docker rmi nginx:latest
搜索公网镜像
[root@node1 ~]# docker  search nginx
删除以非正常状态的容器
[root@node1 ~]# docker rm fc54df60aaf9
后台运行一个容器,映射本地80端口到容器的80端口,设置容器内部环境变量名hostname的值为nginx,映射本地目录/root/html/到容器中的/usr/share/nginx/html,运行的镜像名称是nginx:latest
[root@node1 ~]# docker run -d -p 80:80 -e hostname=nginx  -v /root/html/:/usr/share/nginx/html/ nginx:latest
进入到容器 id 为 fc54df60aaf9  中,使用bash解释器
[root@node1 ~]# docker exec -it fc54df60aaf9 /bin/bash 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值