docker安装

  • 简易安装:

  1. #echo deb http://get.docker.io/ubuntu docker main /| sudo tee /etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

  2. #sudo apt-get update

  3. #sudo apt-get install -y lxc-docker

  • 安装最新版本:

1.卸载旧版本docker 全新安装时,无需执行该步骤

  1. # apt-get --purge remove docker docker-engine docker.io lxc-docker

2.更新系统软件

  1. # apt-get update

3.安装依赖包

  1. # apt-get install apt-transport-https ca-certificates curl software-properties-common

4.添加官方密钥 执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用代-理进行。

  1. # curl -fsSL https://download.docker.com/linux/ubuntu/gpg /| sudo apt-key add -

显示OK,表示添加成功. 5.添加仓库

  1. # add-apt-repository // "deb [arch=amd64] https://download.docker.com/linux/ubuntu /$(lsb_release -cs) stable"

6.再次更新软件

  1. # apt-get update

7.安装docker 如果想指定安装某一版本,可使用apt-get install docker-ce=/<version/>命令,把/<version/>替换为具体版本即可。 以下命令没有指定版本,默认就会安装最新版</version/></version/>

  1. # apt-get install docker-ce

8.查看docker版本

  1. # docker -v

非root用户管理docker

1.创建docker组

  1. # groupadd docker

2.将非root用户加入docker组

  1. # gpasswd -a ${USER} docker

3.重新启动docker服务

  1. # systemctl restart docker

4.用户退出系统重新登陆

修改默认存储

默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置:

  1. docker info /| grep "Docker Root Dir"

修改默认存储有两种方法:

  • 建立软连接

首先停掉Docker服务:

  1. systemctl restart docker或者service docker stop

` 然后移动整个/var/lib/docker目录到目的路径,建立软连接:

  1. mv /var/lib/docker /data ln -s /data/docker /var/lib/docker |

  • 修改配置文件

centos6:

  1. $ vi /etc/sysconfig/docker

  2. 添加如下内容:

  3. OPTIONS=--graph="/data/docker" --selinux-enabled -H fd://

centos7:

  1. # vi /usr/lib/systemd/system/docker.service

  2. 添加如下内容:

  3. ExecStart=/usr/bin/dockerd --graph /data/docker

Ubuntu:

  1. # vi /etc/default/docker

  2. 添加如下内容:

  3. OPTIONS=--graph="/data/docker" -H fd:///#

  4. 或者

  5. DOCKER_OPTS="-g /data/docker"

以上配置修改完成后,均需要重启docker

  1. systemctl daemon-reload && systemctl restart docker.service

  • 如果docker13以上版本

  1. $ vi /etc/docker/daemon.json

  2. 加入如下内容:

  3. {"graph":"/data/docker"}

和其他参数一块添加

  1. { "registry-mirrors": ["https://n9h3vi0d.mirror.aliyuncs.com"], #镜像加速地址

  2. "insecure-registries": ["harbor.test.com","192.168.119.119:1080"], #非SSL源管理镜像。

  3. "graph": "/data/docker", "max-concurrent-downloads": 10 }

添加加速器

方法一:

  1. #vi /etc/default/docker

加入如下内容:

  1. DOCKER_OPTS="/$DOCKER_OPTS --registry-mirror=https://n9h3vi0d.mirror.aliyuncs.com"

重启docker:

  1. systemctl daemon-reload && systemctl restart docker.service

方法二:

  1. # vi /etc/docker/daemon.json

加入如下内容:

  1. {"registry-mirrors":["https://n9h3vi0d.mirror.aliyuncs.com"]}

获取images

我们如何获取新的images呢?当我们启动容器使用的image不再本地主机上时,docker会自动下载他们。

  1. # docker run -t -i ubuntu:14.04 /bin/bash sudo docker run -t -i ubuntu:12.04 /bin/bash

这很耗时,我们可以使用docker pull命令来预先下载我们需要的image。下面的例子下载一个centos镜像。

  1. # docker pull centos

  2. Pulling repository centos

  3. b7de3133ff98: Pulling dependent layers

  4. 5cc9e91966f7: Pulling fs layer

  5. 511136ea3c5a: Download complete

  6. ef52fb1fe610: Download complete

我们可以看到下载的image的每一个层次,这样当我们使用这个image来启动容器的时候,它就可以马上启动了。

  1. # docker run -t -i centos /bin/bash

  2. bash-4.1/#

常用命令

其中<>阔起来的参数为必选,[]阔起来为可选

  1. 1. docker version

  2. 查看docker的版本号,包括客户端、服务端、依赖的Go等

  3. 2. docker info

  4. 查看系统(docker)层面信息,包括管理的images, containers数等

  5. 3. docker search <image>

  6. 在docker index中搜索image

  7. 4. docker pull <image>

  8. 从docker registry server 中下拉image

  9. 5. docker push <image|repository>

  10. 推送一个image或repository到registry

  11. 6. docker push <image|repository>:TAG

  12. 同上,指定tag

  13. 7. docker inspect <image|container>

  14. 查看image或container的底层信息

  15. 8. docker images

  16. 查看本机images

  17. 9. docker images –a

  18. 列出所有的images

  19. 10. docker ps

  20. 默认显示正在运行中的container

  21. 11. docker ps –l

  22. 显示最后一次创建的container,包括未运行的

  23. 12. docker ps –a

  24. 显示所有的container,包括未运行的

  25. 13. docker logs <container>

  26. 查看container的日志,也就是执行命令的一些输出

  27. 14. docker rm <container...>

  28. 删除一个或多个container

  29. 15. docker rm `docker ps -a -q`

  30. 删除所有的container

  31. 16. docker ps -a -q | xargs docker rm

  32. 同上, 删除所有的container

  33. 17. docker rmi <image...>

  34. 删除一个或多个image

  35. 18. docker start/stop/restart <container>

  36. 开启/停止/重启container

  37. 19. docker start -i <container>

  38. 启动一个container并进入交互模式

  39. 20. docker attach <container>

  40. attach一个运行中的container

  41. 21. docker run <image> <command>

  42. 使用image创建container并执行相应命令,然后停止

  43. 22. docker run -i -t <image> /bin/bash

  44. 使用image创建container并进入交互模式, login shell是/bin/bash

  45. 23. docker run -i -t -p <host_port:contain_port>

  46. 将container的端口映射到宿主机的端口

  47. 24. docker commit <container> [repo:tag]

  48. 将一个container固化为一个新的image,后面的repo:tag可选

  49. 25. docker build <path>

  50. 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image

  51. 26. docker build -t repo[:tag]

  52. 同上,可以指定repo和可选的tag

  53. 27. docker build - < <dockerfile>

  54. 使用指定的dockerfile配置文件,docker以stdin方式获取内容,使用此配置生成新的image

  55. 28. docker port <container> <container port>

  56. 查看本地哪个端口映射到container的指定端口,其实用docker ps 也可以看到

  57. 29. 更改主机名

  58. $ docker run -it --hostname web jim/custom1 /bin/bash

 

未完待续….