天天看点

docker_在ubuntu上安装docker服务

系统是 Ubuntu 16.04,xenial

安装docker

  • 升级包管理器
    $ sudo apt-get update
               
  • 安装docker前需要安装相关的Linux包
    $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
    或者
    $ sudo apt-get install linux-image-generic-lts-xenial
               
    • https://askubuntu.com/questions/856493/install-docker-on-ubuntu-16-04-problem-with-linux-image-extra
  • 重启系统
    $ sudo reboot
               
  • 安装 https 请求工具,不然无法获取到 docker-engine
    $ sudo apt-get install apt-transport-https ca-certificates
    $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D # 添加GPG key
               
  • 添加一个源文件,里面添加docker源
    $ sudo vi /etc/apt/sources.list.d/docker.list
    
    
    # 加入一下内容(xenial 当前系统对应的版本,这里是 16.04)
    
    deb https://apt.dockerproject.org/repo ubuntu-xenial main
               
    再更新一下
    $ sudo apt-get update
               
  • 安装docker
  • 启动docker服务
    $ sudo service docker start
               
  • 测试一下
    $ sudo docker run hello-world
               
    docker_在ubuntu上安装docker服务
    这里会优先从本地运行镜像,如果没有则中远端pull下来,这里报了个连接远端超时的错误,据说是 墙 的原因,参照下面的 [docker hub 镜像加速](#docker hub 镜像加速)

添加docker组,不适用sudo命名

  • 如果不使用 sudo 命令 run docker 实例会报错
    wilker@ubuntu:~$ docker run hello-world
    docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1./containers/create: dial unix /var/run/docker.sock: connect: permission denied.
    See 'docker run --help'.
               
  • 装完docker后默认会有增加一个 docker 组,再次添加会提醒 already has xxx,不用管

    将当前用户添加进 docker 组,并重启 docker 服务

    $ sudo groupadd docker
    $ sudo gpasswd -a ${USER} docker
    $ sudo service docker restart
               
  • 注销当前用户,重新登陆
  • 然后再次进入系统,启动服务后就不需要 sudo 了
    wilker@ubuntu:~$ sudo service docker start
    [sudo] password for wilker: 
    wilker@ubuntu:~$ docker run hello-world
    Unable to find image 'hello-world:latest' locally
    docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: Get https://auth.docker.io/token?scope=repository%Alibrary%Fhello-world%Apull&service=registry.docker.io: net/http: TLS handshake timeout.
    See 'docker run --help'.
               

docker 操作

  • docker_相关操作.md

docker hub 镜像加速

  • [docker hub镜像加速.md](./docker hub镜像加速.md)

参考资料

  • http://www.cnblogs.com/lighten/p/6034984.html
  • https://github.com/widuu/chinese_docker/blob/master/installation/ubuntu.md
  • https://zouyapeng.gitbooks.io/docker/content/DockerInstallation/ubuntu_16_04.html