安装docker:https://yeasy.gitbook.io/docker_practice/install/ubuntu

基本命令

从 Docker 镜像仓库获取镜像:

  1. docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

eg:

  1. docker pull ubuntu:18.04

运行镜像:

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

退出容器:

  1. exit

列出镜像:

  1. docker image ls

虚悬镜像查看和删除:

  1. docker image ls -f dangling=true
  2. docker image prune

删除本地镜像:

  1. docker image rm [选项] <镜像1> [<镜像2> ...] #命令格式
  2. docker image rm centos #eg

新建容器:

  1. docker run
  2. docker run ubuntu:18.04 /bin/echo 'Hello world' #执行后退出
  3. docker run -t -i ubuntu:18.04 /bin/bash #进入容器虚拟终端

启动容器:

  1. docker container start

守护态运行:
让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下,可是使用-d参数;

  1. docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
  2. docker container logs [container ID or NAMES] #查看输出信息

停止容器:

  1. docker container stop
  2. docker container ls -a

进入容器:

  1. docker attach 243c #exit will due to this container stop
  2. docker exec -it 69d1 bash #exit couldn't due to stop

导出容器:

  1. docker export 7691a814370e > ubuntu.tar

导入容器:

  1. cat ubuntu.tar | docker import - test/ubuntu:v1.0

删除容器:

  1. docker container rm trusting_newton #stop container
  2. docker container rm -f trusting_newton #running container
  3. docker container prune #clear all container

挂载主机目录:

  1. docker run -d -P \
  2. --name web \
  3. # -v /src/webapp:/usr/share/nginx/html \
  4. --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \
  5. nginx:alpine

网络端口随机映射:

  1. docker run -d -P nginx:alpine

dockerfile

Dockerfile的作用:它可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各样,网络上的镜像很难满足实际的需求。
格式:

  1. Dockerfile整体就两类语句组成:
    1. Comment 注释信息

    2. Instruction arguments 指令 参数,一行一个指令。
  2. Dockerfile文件名首字母必须大写。
  3. Dockerfile指令不区分大小写,但是为方便和参数做区分,通常指令使用大写字母。
  4. Dockerfile中指令按顺序从上至下依次执行。
  5. Dockerfile中第一个非注释行必须是FROM指令,用来指定制作当前镜像依据的是哪个基础镜像。
  6. Dockerfile中需要调用的文件必须跟Dockerfile文件在同一目录下,或者在其子目录下,父目录或者其它路径无效。

其他部分具体参考:https://www.cnblogs.com/ccbloom/p/11174186.html