docker安装
机器信息:linux centos
安装:yum install docker
启动:systemctl enable docker && systemctl start docker
docker 配置信息位置:/usr/lib/systemd/system/docker.service
镜像image
1.1获取镜像
docker pull ubuntu
(没有tag标记,默认pull最新版本)
1.2查看镜像
docker images
1.3使用镜像启动容器
docker run -it ubuntu /bin/bash
1.4创建镜像
创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个。
1.4.1 修改已有镜像
对已下载的镜像进行修改,然后提交到指定仓库。
1.4.2使用Dockerfile创建镜像
一个Dockerfile文件例子:
# This is a comment
FROM ubuntu:14.04
MAINTAINER Docker Newbee <newbee@docker.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra
Dockerfile名词解释:
- 使用#来注释
- FROM 指令告诉 Docker 使用哪个镜像作为基础
- MAINTAINER :表示维护者的信息
- RUN 开头的指令会在创建中运行,比如安装一个软件包,在这里使用 apt-get 来安装了一些软件
- ADD 命令复制本地文件到镜像
- EXPOSE 命令来向外部开放端口
- CMD 命令来描述容器启动后运行的程序等
启动镜像:
docker build -t "localhost/ubuntu:v2.0" .
(“-t”:仓库信息/镜像名称:镜像版本;“.”:Dockerfile存在于当前目录)
1.4.3从本地文件系统导入
sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04
1.5修改镜像docker tag
docker tag
1.6上传镜像
docker push
1.7存出和载入镜像
如果要导出镜像到本地文件,可以使用 docker save 命令。
docker save -o ubuntu_14.04.tar ubuntu:14.04
可以使用 docker load 从导出的本地文件中再导入到本地镜像库
docker load --input ubuntu_14.04.tar
或
docker load < ubuntu_14.04.tar
这将导入镜像以及其相关的元数据信息(包括标签等)。
1.8删除镜像
docker rmi
2容器
2.1启动容器
docker run -t -i ubuntu:14.04 /bin/bash
(-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。)
2.2守护态运行
更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。
docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
docker ps 即可查看到刚才运行的容器
说明:
Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的.
对于有一些你可能不知道怎么前台运行的程序,提供一个投机方案,你只需要在你启动的命令之后,添加类似于 tail top 这种可以前台运行的程序,这里特别推荐 tail ,然后持续输出你的log文件.tail -f /var/log/nginx/error.log
参考:http://blog.csdn.net/meegomeego/article/details/50707532
其他命令:
* docker ps -a:查看终止的进程
(处于终止状态的容器,可以通过 docker start 命令来重新启动)
* docker logs <contianer_id>
* docker stop 来终止一个运行中的容器。
* docker restart 命令会将一个运行态的容器终止,然后再重新启动它。
2.3进入容器
docker exec -it <container_id> /bin/bash
2.4导入和导出容器
使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。
2.5删除容器
docker rm
3.数据卷
3.1创建数据卷
docker run -d -P --name web -v /webapp training/webapp python app.py
(启动容器的时候通过-v参数指定数据卷,将/webapp 目录挂载到容器)
ps:也可以在 Dockerfile 中使用 VOLUME 来添加一个或者多个新的卷到由该镜像创建的任意容器。
3.2挂载一个主机目录作为数据卷:
docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
(加载主机的 /src/webapp 目录到容器的 /opt/webapp 目录)
3.3挂载一个本地主机文件作为数据卷
docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
(这样就可以记录在容器输入过的命令了。)
3.4数据卷容器
如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。
数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
首先,创建一个命名的数据卷容器 dbdata:
docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres
网友评论