Docker学习笔记 - XLab-Tongji/KAOSer GitHub Wiki

Docker

0.

Windows Docker 安装:
win7、win8 系统 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker toolbox 是一个工具集,它主要包含以下一些内容:

Docker CLI 客户端,用来运行docker引擎创建镜像和容器 Docker Machine. 可以让你在windows的命令行中运行docker引擎命令 Docker Compose. 用来运行docker-compose命令 Kitematic. 这是Docker的GUI版本 Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境 Oracle VM Virtualbox. 虚拟机

点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。 如果系统显示 User Account Control 窗口来运行 VirtualBox 修改你的电脑,选择 Yes。 $符号表示你可以输入命令来执行了。 Win10 专业版系统 现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V Hyper-V

安装 Toolbox 最新版 Toolbox 下载地址: https://www.docker.com/get-docker 点击 Get Docker Community Edition,并下载 Windows 的版本。

运行安装文件 双击下载的 Docker for Windows Installe 安装文件,一路 Next,点击 Finish 完成安装。

安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标,这表示 Docker正在运行。桌边也会出现三个图标。 我们可以在命令行执行 docker version 来查看版本号,docker run hello-world 来载入测试镜像测试。 如果没启动,可以在 Windows 搜索 Docker 来启动。

1.

  • 查找已存的镜像:docker search <name>
  • 后台运行:docker run -d <name>
  • 指定版本:docker run -d redis:latest
  • 删除正在运行的容器:docker rm -f 容器名
  • 列出所有在运行中的容器:docker ps
  • 提供有关正在运行的容器的更多详细信息,例如IP地址:docker inspect <friendly-name|container-id>
  • 显示容器已写入标准错误或标准输出的消息:docker logs <friendly-name|container-id>
  • 绑定端口并重新定义容器名字:docker run -d --name redisHostPort -p 6379:6379 redis:latest(默认端口0.0.0.0) docker run -d --name redisHostPort -p 127.0.0.1:6379:6379 redis:latest 运行多个实例:docker run -d --name redisDynamic -p 6379 redis:latest, 但此时不知道端口,需要:docker port redisDynamic 6379
  • 容器可以绑定主机上的目录,使数据存储在主机上不会丢失:docker run -d --name redisMapped -v /opt/docker/data/redis:/data redis pwd为当前目录 : docker run -d --name redisMapped -v "$PWD/data":/data redis 如果不指定-d,容器将在前台运行,若想与bash shell交互,可用-it: docker run ubuntu ps docker run -it ubuntu bash

2.

  • 创建构建映像的Dockerfile:
FROM nginx:alpine
COPY . /usr/share/nginx/html

第一行定义了我们的基本镜像。 第二行将当前目录的内容复制到容器内的特定位置。 构建镜像:docker build -t webserver-image:v1 webserver-image为名字,v1为标签

3.

Docker镜像是基于Dockerfile构建的。 Dockerfile定义了在配置应用程序并准备作为容器运行的情况下创建Docker镜像所需的所有步骤。
定义基本映像后(FROM...),我们需要运行各种命令来配置映像。有许多命令可以帮助解决这个问题,主要的命令有两个是COPY和RUN:

  • RUN <command>允许您像在命令提示符下那样执行任何命令,例如安装不同的应用程序包或运行构建命令。 RUN的结果将保留在映像中,因此不要在磁盘上留下任何不必要的或临时的文件,因为这些文件将包含在映像中。
  • COPY <src> <dest>允许您将包含Dockerfile的目录中的文件复制到容器的映像中。 这对于要在容器内部署的源代码和资产非常有用 COPY index.html /usr/share/nginx/html/index.html 文件名也要是目标地址的一部分。

定义哪个端口访问应用程序:EXPOSE <port> Dockerfile中的CMD行定义了在启动容器时运行的默认命令:CMD ["nginx", "-g", "daemon off;"] 编写Dockerfile后,需要使用docker build将其转换为图像。 build命令接收包含Dockerfile的目录,执行步骤并将映像存储在本地Docker Engine中:docker build -t my-nginx-image:latest . 启动新构建的镜像实例并绑定端口:docker run -d -p 80:80 <image-id|friendly-tag-name

4.

WORKDIR 定义一个工作目录,以确保所有将来的命令都是从相对于我们的应用程序的目录执行的。 安装所需的依赖,需要在Dockerfile里增加以下两行:

COPY package.json /src/app/package.json
RUN npm install

5.

应用程序指定命令已经以ONBUILD为前缀。结果是我们可以构建此镜像,但在将构建的镜像用作基本镜像之前,不会执行特定于应用程序的命令。 然后它们将作为基本镜像构建的一部分执行。OnBuild映像的创建优势在于我们的Dockerfile现在变得更加简单,并且可以在多个项目中轻松重用,而无需重新运行相同的步骤来缩短构建时间。

⚠️ **GitHub.com Fallback** ⚠️