1

一、docker核心组件

docker客户端和服务端
docker镜像
registry
docker容器

二、关键概念

docker以镜像为基础,在镜像的基础上创建、运行容器,可以简单的理解为容器是镜像运行时的表现。

三、docker基本命令

  • 容器相关
1、docker run --name container_name -i -t ubuntu /bin/bash (创建一个交互式容器)
      docker run 命令指的是运行某一个镜像,这里指ubuntu镜像
      --name 参数用于指定即将创建运行的容器的名称(唯一)
      -i 参数指的是以镜像运行的容器中的标准输入是打开的
      -t 参数指的是为创建的容器分配tty终端
      /bin/bash 命令指的是容器创建完毕启动的命令    

2、docker start containerId/containerName
      重新启动容器(docker重启时,会沿用docker run命令时指定的参数来运行)

3、docker stop containerId/containerName
      停止容器

4、docker run --name daemon_dave -d ubuntu(守护式容器)
      -d 参数说明该容器在后台运行

5、docker logs [options] containerId/containerName
      docker logs containerId/containerName:输出此容器的log
      -f 参数 动态打印容器运行时的log日志
      -tf 参数 给日志添加时间
      --tail number 参数用于获取日志的最后几行内容

6、docker top containerId/containerName
      查看容器内部运行的进程

7、docker exec [options] containerId/containerName [shell]
      docker exec:在容器内部额外启动新进程
      -d: 后台进程
      -i -t:交互式进程

8、docker run --restart=[param] ...
      --restart=always:无论容器退出码是多少,都自动重启容器
      --restart=on-failure:5:当退出码是非0时,自动重启5次
       
9、docker ps
      docker ps 命令显示当前正在运行的容器
      docker ps -a 显示所有容器
      docker ps -l 显示最新创建的一个容器
      docker ps -l -q 显示最新创建的一个容器的id

10、docker run -p/-P
      -p:
          8080:80 将容器内的80端口绑定到了本地宿主机的8080端口
          127.0.0.1:8080:80 将容器内的80端口绑定到了本地宿主机的127.0.0.1这个IP的8080端口
          127.0.0.1::80 将容器内的80端口绑定到了本地宿主机的127.0.0.1这个IP的一个随机端口
      -P:
          将容器内的80端口对本地宿主机公开,并且绑定到宿主机的一个随机端口上

11、docker inspect containerId/containerName
      查看容器详细信息

12、docker port containerId/containerName
      查看容器端口映射情况
  • 镜像相关
1、docker images
      docker images:查找docker宿主机所有的镜像,后面加镜像名可查看指定镜像的信息

2、docker search XXX
      用于查看XXX相关的镜像
      镜像一般存储在镜像仓库中(用户仓库:用户名/仓库名),并打上标签

3、docker commit
      docker commit:构建镜像
      docker commit -m "A new custom image" -a "James Turnbull" [容器Id] [仓库名/镜像名:tag]
        -m:提交信息
        -a:提交人信息

4、基于dockerfile构建镜像
      docker build -t="仓库名/镜像名:tag" .
      .:代表从当前目录下查找Dockerfile,也可以指定git仓库

5、dockerfile命令
      CMD:
           指定容器要启动时要运行的命令,一个dockerfile只有一个CMD命令生效,
           且如果docker run时指定了命令,会覆盖dockerfile的CDM指定的命令。
      ENTRYPOINT:
           指定容易启动时要运行的命令,一般不会被覆盖,可以通过docker run --entrypoint覆盖
      WORKDIR:
            dockerfile后续指令的工作目录
      EVN:
            ENV TARGET_DIR /opt/app:指定环境变量
      VOLUME:
             用来向基于镜像创建的容器添加卷,
             让我们可以将数据(如源代码)、数据库或者其他内容添加到镜像中而不是将这些内容提交到镜像中,并且允许我们在多个容器间共享这些内容
      ADD:
             用来将构建环境下的文件和目录复制到镜像中。
             ADD 源文件 目的文件位置
      COPY:
       ARG:
             用来定义可以在docker build命令运行时传递给构建运行时的变量,我们只需要在构建时使用--build-arg标志即可

以上内容参考了《第一本Docker书》,如果有不正确的地方,欢迎指出


imccl
186 声望8 粉丝