docker容器--基础操作

 一、 docker容器介绍:

  容器是Docker又一核心概念简单的说, 容器是独立运行的一个或一组应用, 以及它们的运行环境。对应的虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。

   启动容器有两种方式,一种是基于镜像新建一个容器井启动,另外一个是将在终止状态(stopped) 的容器重新启动,

二、启动操作

      1.新建并启动

docker run -i -t centos:latest  /bin/bash

       -t选项让Docker分配一个伪终端(pseudo-tty) 并绑定到容器的标准输入上,

       -i则让容器的标准输入保持打开(即交互式)

       可以使用-name给容器起个形象的名称。

docker run -i -t --name wang  centos:latest  /bin/bash

      在交互模式下, 用户可以通过所创建的终来输入命令:

    容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。
   除此之外,并没有其它的资源.可以在伪终端中利用ps或top来查看进程信息
 
   ①.如何退出时候还能保证程序继续运行
         如果这个时候我们正常退出, logout或者exit或者Ctrl+d或者Ctrl+c,
         docker ps-a查看容器处于Exit状态如果需要正常退出
          可以使用 CTRL -p + CTRL -q …•就像先按 CTRL -p 然后 CTRL -q 退出
 
   2.伪终端下面的命令输出一个 “Hello World". 之后终止
docker run centos:latest  /bin/echo "hellow world"

    

三、docker标准操作

      1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载

      2. 利用镜像创建并启动 一个容器

      3. 分配一个文件系统”并在只读的镜像层外面挂载一层可读写层

      4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

      5. 从地址池配置一个ip地址给容器

      6. 执行用户指左的应用程序

      7. 执行主毕后容器被终止

四、容器运行命令

     1.查看容器进程

docker ps -a  (查看全部进程)
docker ps     (查看运行进程)

     2.将终止的容器启动运行

docker start a93e34c32e39

      

    容器出于退出状态 可以直接启动 

    3.终止容器   

docker stop 4ad4a14fec51
docker kill 4ad4a14fec51

   4.容器重启

docker  restart a93e34c32e39

五、守护态运行

    更多的时候,需要让Docker容器在后台以守护态Daemonized形式运行。此时.可以通过添加 -d参数来实现。

   例如下面的命令会在后台运行容器。

docker run -d centos:latest  /bin/bash -c "while true;do echo hello worl;sleep 1; done"

    容器启动后会返回一个唯一的id『也可以通过dockerps命令来章看容器信息。

       1. docker run -d运行提个新的容器,我们通 过-d命令让他作为一个后台运行

       2centos:latest是一 我们想要在内部运行命令的遼像

       3/bin/sh -c是我们想要在容 器内部运行的命令

       4. while true; do echo hello weibo; sleep 1; done这是一个简单的脚本,我们仅仅只是每秒打印一次 hello word —直到我们结束它

六、用docker inspect查看容器的信息命令格式:

          docker inspect容器ID或容器名

docker inspect  2540e80e0a94

      1.用docker inspect 查看容器的ip地址

docker inspect -f '{{.NetworkSettings.IPAddress}}'   38df31fbc6e3   (首先保证容器是开启状态)

      2.查看docker inspect查看容器执行的程序

docker inspect -f '{{.Config.Cmd}}'   38df31fbc6e3

 七、进入容器

         1.attach方式

               在使用 -d参数时,容器启动后会进入后台。某些时候需要进入容器进行操作'有很多种方法.包括使用docker attach nsenter命令。使用docker attach进入容器docker attachDocker自带的命令

docker attach  38df31fbc6e3  (这种方式会随机发生错误)

    1.docker attach允许我们进入后台进程.

    2.--sig-proxy=false不使用容器转发信号,允许我们使用Ctrl+c来退出,执行 docker ps查看在后台运行

       但是使用attach命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示。

       当某个窗口因命令阻塞时,其他窗口也无法执行操作了

        2.docker exec进入运行容器

            docker exec -it容器ID/名称/bin/bash以上命令返回一个命令界面,exec代表直接在容器中运行命令

docker exec  -it 38df /bin/bash   (使用此命令进入 每次进入 相当于单独的一个shell)

     

      3.使用nsenter进入容器

        安装nsenter工具在util-linux2.23版本后包含。如果亲统中util-linux包没有该命令可以按照下面的方法从源码安装

wget https://WWVJ.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz 
tar util-linux-2.24.tar.gz
cd util-linux-2.24
./configure --without-ncurses&& make nsenter
cpnsenter /usr/local/bin

或者

yum -y install util-linux

     1.)首先设置快捷

PID=$(docker inspect --format "{{.State.Pid }}" 38df31fbc6e3)

     2.)进入容器

nsenter  --target $PID --mount -u -i -n -p

   3.使用脚本方式进入

     1.下载脚本

https://github.com/dzckzeo/bashrc_docker  (进入网址 git下载)

     2.进入容器

docker-enter  a93e34c32e39

八、容器的导入导出

       1.导出

docker export  38df31fbc6e3 > centos:httpd.tar

      2.导入

docker import centos:httpd.tar   centos:httpd 

或:

cat centos:httpd.tar  | docker import  - centos:httpd

      用户既可以使用docker load来导入镜像存储文件到本地镜像库,也可以使用docker import来导入一个容器快照到本地镜像库。

     这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。

        此外,从容器快照文件导入时可以重新指走标签等元数据信息。

   缺点就是 容易丢失数据

九、删除容器

         可以使用docker rm来删除—处于终止状态的容器。如果要删除一个运行中的容器,可以添加-f参数。Docker会发送 SIGKILL信号给容器

     1.删除单个容器

docker rm 38df31fbc6e3

     

     2.删除多个容器

docker rm $(docker ps -a -q)

           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值