www.icesr.com
IT运维工程师的摇篮

Docker学习(1):在Ubuntu下安装Docker和关于容器的常用命令

一、Docker的安装条件
  1.运行64位CPU架构的计算机,Docker目前不支持32位CPU;
  2.建议采用Linux3.8或更高版本的内核;
  3.内核必须支持一种适合的存储驱动
  4.内核必须支持并开启cgroup和命名空间(namespace)功能;
二、在Ubuntu环境下安装Docker
  注:建议切换到管理员下边,在终端下输入su命令和密码即可。
  1.环境检测

    在终端下输入:uname -a命令,可以检测内核版本:


    检查Device Mapper,在终端下输入:ls -l /sys/class/misc/device-mapper,可以检测Device Mapper:


    如果没有开启的话,可以尝试加载dm_mod模块:
      sudo modprobe dm_mod
  2.安装Docker
    首先要添加Docker的APT仓库,期间可能会提示我们确认添加仓库并自动将仓库的GPG公钥添加到宿主机中:
      sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"
    这里的xenial指的是Ubuntu16.04的发行版本名,如果式Ubuntu14.04则是trusty。
    检查curl命令是否安装:
      sudo lsb-release –codename | cut -f2


    接下来,添加Docker仓库的GPG密钥:

      sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    之后需要更新APT源:
      sudo apt-get update
    现在可以安装Docker软件包了:

      sudo apt-get install docker-engine


    安装完毕后,输入sudo docker info命令进行确认:


三、Docker守护进程    
    安装完docker后,需要确认Docker的守护进程是否运行,Docker以Root权限来运行它的守护进程,来处理普通用户无法完成的操作(如挂载文件系统)。docker程序是Docker守护进程的客户端程序,同样也需要以root身份运行。用户可以使用docker daemon命令控制Docker守护进程。
    当Docker软件包安装完毕后,默认会立即启动Docker守护进程,守护进程监听/var/run/docker.sock这个Unix套接字文件,来获取来自客户端的Docker请求。如果系统中存在名为docker的用户组,Docker会将该套接字文件所有者设为该用户组,docker用户组以后可以直接运行docker而不用sudo命令。尽管docker用户组方便了使用,但这是一个安全隐患,因为docker用户组对Docker和root具有相同的权限。
    配置Docker的守护进程
      运行Docker守护进程时,可以用-H标志调整守护进程绑定监听接口的方式。
    可以使用-H标志指定不同的网络接口和端口配置,命令如下:
      sudo docker daemon -H tcp://0.0.0.0:2375
    检查Docker守护进程是否运行:
        systemctl status docker
    打开/关闭docker服务:
        sudo service docker start
        sudo service docker stop
        或者:
        systemctl start docker
        systemctl stop docker
    Docker服务的开机自启动设置:
        systemctl enable docker
        systemctl disable docker
四、Docker的常用命令
  1.新建容器
    sudo docker run –name container -i -t ubuntu /bin/bash
    建立一个以ubuntu镜像为基础的容器,如果ubuntu镜像不存在的话,会连接官方维护的Docker Hub Registry来拉取镜像,这里建议使用DaoCloud的Docker加速器,因为网络的原因,Docker Hub经常无法拉取。
    -i:保证容器中STDIN是开启的,尽管我们没有附着到容器中,持久的标准输入是交互式shell的重要依赖;
    -t:为创建的Docker容器分配一个伪tty终端,这样才能提供一个交互式shell;
    Docker在文件系统内部用镜像创建了一个新容器,该容器拥有自己的网络和IP地址,以及一个用来和宿主机进行通信的桥接网络接口。这个命令的最后要告诉Docker在新容器中要运行什么命令,这里我们运行了/bin/bash命令启动了一个Bash Shell。

  2.可以在容器中输入一些命令,使用一下,比如hostname、cat /etc/hosts、ip a、ps -aux等:


  3.启动已经停止或者打开容器:
    sudo docker start bob_the_container
    sudo docker stop bob_the_container
  docker stop会向Dokcer容器进程发送SIGTERM信号,如果想快速停止容器,也可以使用docker kill命令来向容器进程发送SIGKILL信号。
  4.删除容器:
      sudo docker rm bob_the_container
    将当前会话附着到容器上:
      sudo docker attach bob_the_container
      注意:可能需要再按一次回车
    查看正在运行的容器:
      docker ps
    查看最后x个容器:
      docker ps -n x
    获取容器信息:
      sudo docker inspect dameon_dave
    查看容器内的进程:
      sudo docker top dameon_dave
    查看容器的统计信息:
      sudo docker stats dameon_dave
    查看著机上可用的Docker镜像
      sudo docker images
  5.创建守护式容器(daemonized container):
    守护式容器常用于运行不需要交互界面的,没有交互式会话,非常适合运行应用程序和服务:
      sudo docker run –name daemon_con -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
    这个容器会一直再输出hello world
    获取守护式容器的日志:
      sudo docker logs daemon_con
    这里docker会输出项并返回,如果需要跟踪守护式容器的日志,需要如下命令:
      sudo docker logs -f daemon_con
      sudo docker logs -ft daemon_con(这个命令可以为每个日志加上时间戳)

 
 

未经允许不得转载:冰点网络 » Docker学习(1):在Ubuntu下安装Docker和关于容器的常用命令

分享到:更多 ()

评论 抢沙发

评论前必须登录!