您的位置:首页 > 运维架构 > Docker

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

2018-01-01 11:12 1746 查看
一、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软件包了
4000


      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(这个命令可以为每个日志加上时间戳)

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: