第一周_T-Docker 基本命令

83 阅读4分钟

学习目标

  • 了解 Docker
  • 会基本的 Docker 命令
  • 简单编写 Dockerfile

Docker 简介

Docker 是什么

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用的接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件(镜像文件)里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就像在真实的物理机上运行一样,有了 Docker ,就不用担心环境问题。

Docker 解决的问题

环境配置问题:Docker 带环境安装,安装的时候把原始环境一模一样的复制过来。不用操作系统合各种库/组件

Docker 用途

主要用途有以下三种:

  • 提供一次性的环境。比如本地测试他人的软件,持续集成提供单元测试和构建环境
  • 提供弹性的云服务。Docker 容器可以随时开关,很适合动态扩容和缩容
  • 组建微服务建构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟微服务架构

安装 Docker

www.runoob.com/docker/cent…

docker -version 或者 docker info

Docker image 文件

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件才能生成 Docker 容器。

image 是二进制文件,实际开发中,一个 image 往往通过继承另一个 image 文件,再加上自己个性化的设置。比如:先拉一个官方的 nginx 镜像文件,然后修改其 nginx.conf 然后再生成自己所需要的 nginx

image 文件是通用的,一台机器的 image 文件拷贝到另外一台机器,照样可以使用。一般来说,为了节省时间,我们一般是使用已经制作好的镜像,即使需要定制,也是基于其他镜像基础上进行加工,而不是从零开始。

查看所有镜像文件

docker images

删除镜像文件

docker rmi [imageNmae/imageId]

Docker 容器

image 文件生成的容器实例,本身也是一个文件,称为容器文件。

列出正在运行的容器

docker ps

列出本机所有的容器,包括已停止的容器

docker ps -a

启动/停止容器

docker start/stop [containerId]

删除容器

docker rm containerId

Dockerfile 文件

www.runoob.com/docker/dock…

Dockerfile 是一个配置文件,用于生成 Docker 镜像文件

当 Dockerfile 写好之后

通过 Dockerfile 生成镜像文件

docker build -t [imageName] .

build 命令;imageName:自己定义的镜像名称;. 表示应用此镜像文件在当前目录下(也可以指定绝对路径)

实践常用容器命令

  1. 先写好所需的 Dockerfile
  2. 生成镜像文件:docker build -t [imageName] .
  3. 运行镜像文件:docker run -d --name [containerName] -p port:port [imageName]

-d:后台运行(-it 前台运行);--name:指定容器名字;-p 指定端口「一般两个写一样的,一个是容器内的端口,一个是容器外的映射端口」;也可以不指定端口运行「当你不知道端口的时候,直接启动也是好的」

  1. docker ps

查看正在运行的容器

  1. docker logs -f [containerId]

查看容器实时日志(方式一);

  1. 进入容器内部:docker exec -it [containerId] bash

进入容器内部,就相当于进入了一个 linux 系统,其他操作都一样的,不过容器里面命令特别少,除非你在Dockerfile 里面指明编译了命令


以上,如果都顺利通过,当前 image 镜像文件就满足你的需求,那么你需要将你的 image 镜像推送至仓库

一般来说给的远程仓库都会有具体的推送命令,比如登录口令登,所以下面就简写

  1. docker login
  2. docker tag
  3. docker push

当你的镜像不满足需求,你需要 docker exec 然后更改容器文件;此时你需要基于此容器生成一个新的 image 镜像文件:docker commit -m [描述] [当前containerId] [新的imageName]

然后再将 image 推送到远程仓库「这里 commit 是不是想到了 git commit 嘿嘿」

  1. 需要用的时候,自然是 docker pull

总结

可以直接看「实践常用命令」,快速了解常用命令

一般来说只要 Dockerfile 写好了,基本不会有什么其他问题;主要是多实践,多查看文档