Docker(一)

经过几天看书,我自己总结了一下Docker。

  • Docker适用于微服务(数据库那些大服务就不太适合放在docker)。
  • docker更容易配置服务。
  • docker更适于发布软件。
  • docker有利于多版本测试。
  • docker会比saltstack更方便一点。
  • docker比OpenStack更容易处理一些业务扩容(时间短,秒级;资源利用率比OpenStack高)

                                                                                          (OpenStack会引发一个IO风暴的问题。)

docker的部署

        Docker可以在linux下,window下,mac下部署。但是目前最支持的是Linux下的Ubuntu系统。   

 

  1.        有yum仓库就可以直接用yum仓库,很方便
  2.          
    yum install docker-io  (Centos)
    
    sudo apt-get install docker-io(Ubuntu)

     

  3. 安装完之后,启动Docker。
  4. sudo systemctl start docker
    
    或者 /etc/init.d/docker start

     

   

   完了之后,就可以运行docker的镜像。docker那么火其实一部分原因我觉得是因为docker像GitHub一样,有一个仓库。

    里面存放着很多docker镜像。

    我们可以从上面搜索我们想要的镜像,或者pull一个镜像下来

    比如我们搜索一个关于debian的镜像

sodu docker search debian

解释:
name          名称              格式:用户名/项目的名称
description   描述
stars         被引用多少次
official      是否是官方的
automated     是否是自动构建的

那么我们怎么去使用这些镜像呢?

直接pull下来就可以用了。

sudo docker pull debian

 结果:

 我们获取完之后,我们可以使用

sudo docker images

就可以看见我们当前系统拥有的镜像了!

 

repository  仓库。我们可以查看这个镜像来自哪个仓库
tag         标志;lastest说明是最新一个
image ID    镜像ID;每个镜像都有一个唯一的ID
created     镜像创建的时间
Size        镜像的大小

 


我们先使用一个docker发出一个hello docker

sudo docker run debian /bin/echo 'Hello Docker'


 

Docker -a 可以查看所有的docker容器的情况

 

//我们可以从里面看见运行的容器和停止运行的容器

//每一个容器都会有一个自己的ID比如这里的:541b249174bb

//image       表示他的镜像是什么

//command     表示他运行的命令是什么

//created     表示他的创建时间是什么时候

//status      表示当前的状态,Exited是已经退出了

//name        表示名字,不指定名字的时候,docker会在他的名字库里面自动找一个生成

 

//我们可以使容器保持打开,并且自定义名字

sudo docker run -name FirDocker -it debian /bin/bash

在这里:
    -name选项可以自定义名字
    -it选项是 -i和-t的结合。
    -i是表示让容器的标准输入保持打开
    -t是表示让容器开出一个tty,并绑定到容器的标准输入上

 比如我们不加 -it选项,docker运行完所需要的指令就会退出。

 

生产中常用的进入container的方法(十分不推荐使用ssh进去):

 

  1. 获取container的pid
  2.  sudo docker inspect --format "{{.State.Pid}}" mynginx1
    
    //mynginx1可以是container的id或者是名字
  3. 通过nsenter命令进入
  4.  sudo nsenter --target 32029 --mount --uts --ipc --net --pid
    
    --target 后接pid

     

         当然,我们也可以用attach方法附着到容器上

sudo docker attach containername

 

 (顺带提一下,docker是一个一次只能执行单任务的机器,他执行完这个任务就会自动退出)

我们把hello docker  的机器启动

但是一启动就退出了,因为他一执行完hello Docker这任务就退出了

退出docker

这个模式是退出并且关闭容器

显示名为Nick_Docker的container以及退出了

 

删除某一个container

sudo docker rm containername

很明显,我们要先停止这个容器才可以删除掉。(其实很好,可以防止误删,对服务造成影响)

删除container的顺序是先stop container,然后再rm container.

 

Docker是一个只允许一个用户同时登录的容器,并不能像虚拟机一样,这也是他和虚拟机的一个区别

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值