地址 https://docker.mirrors.ustc.edu.cn/
#说明
Docker Hub 镜像缓存
使用说明 注意 由于访问原始站点的网络带宽等条件的限制,导致 Docker Hub, Google Container Registry (gcr.io) 与 Quay Container Registry (quay.io) 的镜像缓存处于基本不可用的状态。故从 2020 年 4 月起,从科大校外对 Docker Hub 镜像缓存的访问会被 302 重定向至其他国内 Docker Hub 镜像源。从 2020 年 8 月 16 日起,从科大校外对 Google Contain
centos下安装 docker 卸载老版本docker 较旧版本的Docker被称为docker或docker-engine.请卸载它们以及相关的依赖项
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
mac下安装 docker 官网下载地址:
https://docs.docker.com/docker-for-mac/install/
安装启动 docker
左小角显示 docker running
shell 执行 docker version
$ docker version
Client: Docker Engine - Community
Cloud integration: 1.0.4
Version: 20.10.0
API version: 1.41
Go version: go1.13.15
Git commit:
Docker Compose是什么
Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用.
通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器.
什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互.
如何定义yml文件 新建 docker-compose.yml 文件
version: '3.7'
services:
mongodb:
contain
Docker Compose是什么
Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用.
通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器.
什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互.
如何定义yml文件 新建 docker-compose.yml 文件
version: '3.7'
services:
mongodb:
contain
容器之间为什么要互访 docker容器与容器之间是隔离状态,不能互相访问,但如果有些依赖关系的服务要如何访问对方呢?
介绍三种方法来解决容器互访问题.
虚拟IP访问 安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。
运行一个centos镜像, 查看ip地址得到:192.168.32.2
首先通过 docker ps 查看当前电脑上运行的容器实例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATE
docker 创建mongodb 容器 安装 mongodb 镜像 拉取官方镜像
docker pull mongo
本地创建数据库目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:03:15]
$ sudo mkdir mongodb
不要忘记给目录 777 权限
sudo chmod 777 mongodb
本地配置文件目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:27:24] C:130
$ sudo mkdir docker/mongodb
不要忘记给目录 777 权限
sudo chmod
docker logs-查看docker容器日志 命令格式:
$ docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until st
docker 安装 redis 拉取镜像 docker pull redis
宿主机创建映射目录 创建目录 sudo mkdir -p docker/redis/redis01/conf
sudo mkdir -p docker/redis/redis01/data
conf 目录放redis.conf 配置文件
data 目录映射redis数据目录
上面文件都要chmod 777 的权限
创建配置文件 在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下
cd docker/redis/redis01/conf
wget http:
创建自己的项目 我们用简单的 node.js web项目输出 helloworld 为例.
项目目录:
npm start app.js 启动项目;
app.js 代码
const Koa = require('koa');
const app = new Koa();
const main = ctx => {
ctx.response.body = 'Hello World';
};
app.use(main);
app.listen(3000);
编写dockerfile FROM node:8.4
COPY . /app
WORKDIR /app
RUN ["n
什么是Docker 如今的云计算就好比大货轮,docker就是集装箱,一个个封闭式的箱体可以堆放再货轮上,我们不关心箱体里装的是什么货物;
我们这实际开发中,不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,很麻烦,还会造成一些冲突.
比如IIS和Apache访问端口冲突,这个时候你就要隔离.net开发的网站和php开发的网站.
常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高.
docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小
概述 容器技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。
由于隔离的进程独立于宿主和其它的隔离的进程,因此称为容器。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。
使得 Docker 技术比虚拟机技术更为轻便、快捷。
通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用级别的一次封装,到处运行
docker 组成
镜像 Image
容器 Container
仓库 Repository
镜像 Image
Docker 镜像是 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还