title: docker的基本用法


学习要有目的性。


镜像基本操作

获取镜像

docker pull ubuntu:16.04

运行镜像

docker run -it --rm \
    ubuntu:16.04 \
    bash
  • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • -rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
  • ubuntu:16.04:这是指用 ubuntu:16.04 镜像为基础来启动容器。
  • bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

列出镜像

docker image ls

镜像删除

删除所有仓库名为 redis 的镜像:
$ docker image rm $(docker image ls -q redis)

虚悬镜像删除

docker image prune

DockerFile

  1. 编写Dockerfile
FROM tomcat
WORKDIR /usr/local/tomcat/webapps
COPY ./demo.war .
WORKDIR /usr/local/tomcat
EXPOSE 8080

这一个就需要工作经验了。需要经常写,写了一个简单的例子
FROM:以tomcat为基础镜像,from是dockerFile必须的,且放到开头
WORKDIR: 是将默认的工作路径变为/usr/local/tomcat/webapps,因为下面需要将war包放到webapps下进行部署
COPY: 复制**上下文路径的demo.war(.是上下文的意思,就是dockfile所在的文件夹)**到当前文件夹(上一步将工作路径改变了,默认为webapps)
将工作路径变回原样
EXPOSE: 端口,仅仅是个说明,方便别人阅读

  1. 根据dockerfile构建镜像
docker build [选项] <上下文路径/URL/->
docker build -t tomcat:v1 .

当构建的时候,用户会指定构建镜像上下文的路径,docker build 命令得知这个路径后,会将路径下的所有内容打包,然后上传给 Docker 引擎。这样 Docker 引擎收到这个上下文包后,展开就会获得构建镜像所需的一切文件。
现在就可以理解刚才的命令 docker build -t nginx:v3 . 中的这个 .,实际上是在指定上下文的目录,docker build 命令会将该目录下的内容打包交给 Docker 引擎以帮助构建镜像。


docker容器

启动容器

$ docker run -t -i ubuntu:14.04 /bin/bash

启动终止容器

docker container start 容器ID

守护态运行

通过添加 -d 参数来实现

终止容器

docker container stop

进入容器

docker exec -it 69d1 bash

删除容器

docker container rm :删除一个终止状态的容器;要删除一个运行中的容器,添加 -f 参数
docker container prune : 清理掉所有处于终止状态的容器

数据管理

数据卷

数据卷是可供一个,多个容器共同使用。共享数据,数据持久化。通过-v 宿主机:容器参数实现。

$ docker run -d \ 
-p 8081:8080 \
-v /usr/local/docker/tomcatIndex:/usr/local/tomcat/webapps/ROOT \
tomcat
  • -d 后台运行
  • -P 大P为随机端口映射,小p需配置端口映射
  • -v 宿主机:容器 , 挂载主机数据卷

docker-compose

dokcer-compose用于快速部署分布式应用。是容器和容器之间的相互配合。由python编写。

  • 创建docker-compose.yml。yml语言不能用tab,必须空格
  • 简单应用cmpose启动一个8080的tomcat
version: "2"
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - "8080:8080"
  • 启动compose。 docker-compose up (参数-d后台运行)
  • 关闭容器 docker-compose dowm
  • 查看日志 docker-compose logs tomcat

未完