之前看了点《第一本Docker书》,又忘记的差不多了,最近又涉及到了Docker的内容,计划系统的学习下。
Install
因为我使用的是Mac,所以只记录了在此环境下的使用情况。
Download Boot2Docker .
Install Boot2Docker by double-clicking the package.
The installer places Boot2Docker in your "Applications" folder.
The installation places the docker and boot2docker binaries in your /usr/local/bin directory.
Base Command line
- boot2docker start/restart/ip
- docker status/info/ps/run
遇到的问题
我在安装boot2docker之前,自己创建了~/.bash_profile文件,里面有个显示git分支的函数(parse_git_branch()),但我启动boot2docker时,报错啦(parse_git_branch not command),判断是初始化的文件优先级的问题,于是把此函数转移到了~/.profile下,解决 :P-
还有一个问题(dial tcp: lookup index.docker.io on 192.168.1.1:53:timeout),谷歌了半天,才知道是docker容器的域名解析的问题,解决办法:
host $ boot2docker ssh
vm $ sudo vi /etc/resole.conf
# nameserver 8.8.8.8 变更
#退出vm
boot2docker restart
- 当我们执行 docker info,出现如下问题
FATA[0000] Get http:///var/run/docker.sock/v1.17/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
出现这个问题的场景是,打开命令行,然后直接 boot2docket start,其实这里面是少了一步的,正确的步骤是:
- /usr/local/bin/boot2docker init
- /usr/local/bin/boot2docker up
- $(/usr/local/bin/boot2docker shellinit)
- docker version
如果嫌麻烦,直接在application文件夹下打开boot2docker。
镜像
- docker pull registry.hub.docker.com/ubuntu:14.04 (从默认服务器registry.hub.docker.com中的ubuntu仓库中下载tag为14.04的镜像)
- docker images 查看镜像信息
- docker tag new:newTag ubuntu:14.04 产生本地tag,以ubuntu:14.04为base
- docker inspect ImageID 查看镜像详细信息
- docker search 搜索镜像,默认是从docker官方仓库共享的镜像
- docker rmi ImageID 删除镜像,注意是否有相关的容器在
- docker commit -m"commit message" -a "author" -p(--pause=true) container [repository[:tag]]
- cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04 直接从操作系统模版文件导入一个镜像
- docker save -o ubuntu_14.04.tar ubuntu:14.04 存出镜像到本地文件
- docker load [--input | <] ubuntu_14.04.tar 载入镜像
- docker push name[:tag] 上传镜像到仓库