docker命令、简单创建镜像、dockerfile实战、Dockerfile语法、镜像分层、Volume介绍
docker的常用命令:
docker pull 获取image
docker build 创建image
docker images 列出image
docker run 运行container
docker stop 停止container
docker rmi 删除image
docker ps 列出container
docker ps -a 列出container的历史记录
docker rm 【"idlist"】删除contain多个历史记录
docker run -p 8080:80 -d daocolud.io/nginx  运行nginx
docker cp index.html ["id"]://usr/share/nginx/html 暂时修改nginx首页
docker commit -m 'fun' ["id"] ['name'] 保存修改的image
创建简单的docker镜像 Dockerfile
1.创建Dockerfiler文件

2.编辑文件,vim Dockerfile
输入:
FROM alpine:latest
MAINTAINER yrg
CMD echo "Hello Docker"

3.创建镜像
docker build -t hello_docker .
-t:给镜像一个hello_docker的标签,' . '是一个路径名,把底下所有的内容都送给docker engine 让他产生一个image

4.查看image

5.运行image

Dockerfile实战(创建较复杂的image)
1.创建文件夹,创建Dockerfile文件
2.编辑文件,在其中添加如下:
FROM ubuntu    #名字
MAINTAINER yrg            #作者    
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list  #加速镜像
RUN apt-get update   #更新Ubuntu的库
RUN apt-get install -y nginx  #安装nginx的命令
COPY index.html /var/www/html  #拷贝准备的index.html到容器里(不同Ubuntu是不一样的)
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]  #容器的入点,将nginx作为前台来执行
EXPOSE 80 #端口

3.创建镜像
docker build -t yrg/hello-nginx .
4.运行镜像
docker run -p 80:80 -d yrg/hello-nginx
5.curl http://localhost进行查看
Dockerfile语法


镜像分层

Volumo
介绍:提供独立于容器之外的持久化存储
操作:1.docker run -d --name nginx -v /usr/share/nginx/html nginx
2.docker inspect nginx 查看详情

3.查看文件
ls /var/lib/docker/volumes/76db0f001f7675c41f511400dd09be16fe2e785f114c7f1a1e0f860c3b36f4fd/_data

4.可以修改index文件进入容器中下查看
docker exec -it /bin/bash
cd /usr/share/nginx/html
cat index.html
方式二挂载:
docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx
三:
docker create -v $PWD/data:/var/mydata --name data_container ubuntu

进入Ubuntu
docker run -it --volumes-from data_container ubuntu /bin/bash
输入mount

进入/var/mydata,输入ls,可以看到为空

创建一个文本,whatever.txt,然后退出

进入data,输入ls,可以看的当前目录下也创建了一个whatever.txt的文本

说明挂载成功
Registry(镜像仓库)

# docker search whalesay :从仓库中搜索镜像
# docker pull whalesay :从仓库中下载镜像
# docker push myname/whalesay :将自己做的镜像上传到仓库
国内的一些仓库:
daocloud
时速云
aliyun
实战:
docker search whalesay

下载镜像
docker pull docker/whalesay
查看镜像:

运行镜像
docker run docker/whalesay cowsay dockerisfun

docker tag docker/whalesay godyrg/whalesay :产生一个新的tag的镜像

上传镜像:
进行登录
docker login
登录成功后 ,上传镜像
docker push godyrg/whalesay
进入 https://hub.docker.com/ ,可以看到上传的镜像

docker-compose(多容器)
Mac/windows :自带
linux:需要安装:
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose :给文件夹赋予权限
输入
docker-compose --version
如果显示版本号,安装成功

实战:
创建 ghost,nginx,data文件夹
在ghost文件夹中创建Dockerfile

编辑Dockerfile文件
FROM ghost
COPY ./config.js /var/lib/ghost/config.js
EXPOSE 2368
CMD  ["npm","start","--production"]

接着
var path = require('path'),
config;
config={
  prodution: {
      url: 'http://mytestblog.com', 
      mail: {},
      database: {
         client: 'mysql,
         connection: {
            host     : 'db',
            user     : 'ghost', 
            password : 'ghost',
            database : 'ghost', 
            charset  : 'utf8'
         },     
        debug:false
        },
        path:{
            contentPath:path.join(process.env.GHOST_CONTENT,'/')
        },
    server: {
            host: '0.0.0.0',
            port: '2368'
        }
    }
} ;
moudle.exports = config;

保存退出
进入刚刚创建的nginx目录

创建Dockerfile文件,编辑
FROM nginx 
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

保存退出
创建nginx.conf配置文件
worker processes 4;
events {worker_connections 1024}
http {
        server{
                listen 80;
                loction / {
                        proxy_pass http://ghost-app:2368;
                }
        }
}

最后准备docker-compose.yaml文件

version: '2'
networks:
ghost:
services:
        ghost-app:
                build: ghost
                networks:
                        - ghost
                depends_on:
                        - db
                ports:
                        - "2368:2368"
nginx:
    build: nginx
    networks:
        - ghost
    depends_on:
        - ghost-app
    ports:
        - "80:80"
db:
    image: "mysql :5.7.15"
    networks:
        - ghost
    enviroment:
        MYSQL_ROOT_PASSWORD: mysqlroot
        MYSQL_USER: ghost
        MSYQL_PASSWORD: ghost
    volumes:
        - $PWD/data:/var/lib/mysql
    ports:
        - "3306:3306"

docker-compose up -d 进行挂起(无镜像,系统帮忙做一个镜像)
docker-compose stop 停止(出现错误的不停止)
docker-compose rm 停止(错误的也停止)

docker-compose build (自己构建一个镜像)


docker命令、简单创建镜像、dockerfile实战、Dockerfile语法、镜像分层、Volume介绍的更多相关文章
- Docker入门系列之五:15个 Docker 命令
		
在这篇文章中,我们将学习15个Dockers CLI命令.如果你还不了解Docker,请查看这个系列的其他部分进行学习,Docker概念,生态系统,Dockerfile,Docker镜像. Docke ...
 - docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。
		
一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...
 - 最简单的dockerfile使用教程 - 创建一个支持SSL的Nginx镜像
		
什么是dockerfile?简单的说就是一个文本格式的脚本文件,其内包含了一条条的指令(Instruction),每一条指令负责描述镜像的当前层(Layer)如何构建. 下面通过一个具体的例子来学习d ...
 - Docker镜像构建文件Dockerfile及相关命令介绍
		
使用docker build命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile文件.Dockerfile文件是一个由一系列构建指令组成的文本文件,doc ...
 - Docker探索系列2之镜像打包与DockerFile
		
preface docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建 ...
 - docker镜像管理和dockerfile详解(8)
		
docker镜像加速 docker-io先到 https://cr.console.aliyun.com/ 注册一下,登录成功后,在控制台,看左侧,有一个加速器按钮,点开找到自己的专属加速链接,我的是 ...
 - Docker定制容器镜像(利用Dockerfile文件)
		
1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [root@docker01 myfiles ...
 - Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
		
这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...
 - Docker 学习笔记(二):Dockerfile 定制镜像
		
镜像的定制实际上就是定制每一层所添加的配置.文件. 如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积 ...
 - Docker学习笔记(三):Dockerfile及多步骤构建镜像
		
Dockerfile指令 官方文档地址:https://docs.docker.com/engine/reference/builder/ Dockerfile是一个文本格式的配置文件,其内容包含众多 ...
 
随机推荐
- vue+vant-ui小程序,微信小程序自定义导航栏(适配刘海屏)
			
整理一下微信小程序自定义导航栏和刘海屏适配问题 1.首先在根据官方文档,我们在小程序修改 app.json 中的 window 的属性 "navigationStyle": &qu ...
 - GIT Authentication failed for错误问题处理
			
1. Settings ==> Developer settings ==> Personal access tokens ==> Generate new token 生成新的 ...
 - js引入样式资源报错
			
如上图,import这几个样式资源为什么会报错,怎么解决呢,而且那个jquery-ui之前也会报错但是现在刷新一遍他又不报错了其他的css文件报错 图片转代码服务由CSDN问答提供 功能建议 im ...
 - Wahahahehehe 随笔归档
			
[连载教程类] <RISC-V MCU 原理与应用> 1. 计算机理论模型--图灵机 2. 从图灵机到计算机 3. MCU构成及其运行原理 <RISC-V MCU 开发那些事> ...
 - uml类间关系总结
			
1. 关联关系 (1) 双向关联 顾客购买并拥有商品,商品被顾客购买,Customer和Product双向关联 (2) 单向关联 顾客拥有地址 (3) 自关联:一些类的属性对象类型是本身 (4) 多重 ...
 - leetcode -- 旋转矩阵相关问题
			
给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 1: 给定 m ...
 - PyTables学习 (数据保存形式,对象树结构)
			
参考自http://www.pytables.org/usersguide/introduction.html PyTables的主要目的是提供一个好的操作HDF5文件的方法. HDF文件是分层数据格 ...
 - mybatis-关联查询4-多对多查询
			
三张表的关联查询
 - SAP日志表 CDHDR和CDPOS
			
1. 标准日志表CDHDR 和 CDPOS OBJECTCLAS = 'INFOSATZ' 信息记录 OBJECTCLAS = 'BANF' 采购申请 OBJECTCLAS = 'EINKBELEG' ...
 - tomcat多主多备
			
主服务器默认轮询,当主服务器全部挂了,就会访问备机backup,备机也默认轮询