Docker
Docker是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。
应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
架构
Docker 使用客户端-服务器 (C/S) 架构模式
Docker 容器通过 Docker 镜像来创建, 容器与镜像的关系类似于面向对象编程中的对象与类。
命令
镜像
- docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images - docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
docker run -ti –rm image - docker rmi [OPTIONS] IMAGE [IMAGE…]
停止所有的container,这样才能够删除其中的images
docker rmi image
docker rmi $(docker images | grep “^” | awk “{print $3}”)
docker rmi $(docker images -q) - docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull ubuntu:xenial - docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
重命名镜像
docker tag ca1b6b825289 centos:6.7
容器
- docker ps [OPTIONS]
docker ps -a - docker stop [OPTIONS] CONTAINER [CONTAINER…]
docker rm $(docker ps -a -q) - docker rm [OPTIONS] CONTAINER [CONTAINER…]
docker rm $(docker ps -a -q)
Docker
Dockerfile
修改sources.list
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
RUN echo "deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted" > /etc/apt/sources.list &&\
echo "deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted">> /etc/apt/sources.list &&\
echo "deb http://cn.archive.ubuntu.com/ubuntu/ xenial universe">> /etc/apt/sources.list