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介绍的更多相关文章

  1. Docker入门系列之五:15个 Docker 命令

    在这篇文章中,我们将学习15个Dockers CLI命令.如果你还不了解Docker,请查看这个系列的其他部分进行学习,Docker概念,生态系统,Dockerfile,Docker镜像. Docke ...

  2. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  3. 最简单的dockerfile使用教程 - 创建一个支持SSL的Nginx镜像

    什么是dockerfile?简单的说就是一个文本格式的脚本文件,其内包含了一条条的指令(Instruction),每一条指令负责描述镜像的当前层(Layer)如何构建. 下面通过一个具体的例子来学习d ...

  4. Docker镜像构建文件Dockerfile及相关命令介绍

    使用docker build命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile文件.Dockerfile文件是一个由一系列构建指令组成的文本文件,doc ...

  5. Docker探索系列2之镜像打包与DockerFile

    preface docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建 ...

  6. docker镜像管理和dockerfile详解(8)

    docker镜像加速 docker-io先到 https://cr.console.aliyun.com/ 注册一下,登录成功后,在控制台,看左侧,有一个加速器按钮,点开找到自己的专属加速链接,我的是 ...

  7. Docker定制容器镜像(利用Dockerfile文件)

    1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [root@docker01 myfiles ...

  8. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...

  9. Docker 学习笔记(二):Dockerfile 定制镜像

    镜像的定制实际上就是定制每一层所添加的配置.文件. 如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积 ...

  10. Docker学习笔记(三):Dockerfile及多步骤构建镜像

    Dockerfile指令 官方文档地址:https://docs.docker.com/engine/reference/builder/ Dockerfile是一个文本格式的配置文件,其内容包含众多 ...

随机推荐

  1. 关于windows更新时间,设置更新时间段

    https://jingyan.baidu.com/article/bad08e1eda412f09c85121c6.html https://www.dadighost.com/help/39372 ...

  2. wamp下载使用

    下载 搜索wamp进官网下载就行,FQ更快 下好打开,闪几个黑框后右下角有图标,右击图标->language->Chinese,即可切换中文模式 配置php环境变量 这个路径复制到path ...

  3. verilog 和system verilog 文件操作

    1. 文件操作 Verilog具有系统任务和功能,可以打开文件.将值输出到文件.从文件中读取值并加 载到其他变量和关闭文件. 1.1 Verilog文件操作 1.1.1 打开和关闭文件 module ...

  4. redis相关入门知识

    redis介绍:是一种基于键值对的NoSql数据库,与许多键值对数据库不同是,它可以由string,hash,list,set,zest(有序集合).Bitmaps(位图).HyperLogLog.G ...

  5. 【笔记】gitlab+openldap使用memberof筛选登录用户

    这几天在搞kerberos+nfs4 没搞成 之前搞了个openldap实现了分散控制集中管理(不是DCS...) gitlab和nexus也支持ldap 虽然都不咋好用 但是在搞gitlab的时候发 ...

  6. 解决问题mount.nfs: Stale file handle

    原因出现在,机器1挂载了机器2的一个盘,然后机器2重启了,然后机器1变成没有响应的状态,然后卸载了机器1的对于这个盘的挂载,然后就一直挂不上,提示mount.nfs: Stale file handl ...

  7. Javascript格式化数字字符串,如手机号,银行卡号的格式化

    手机号13312341234转化成133 1234 1234 //方式一 function format_tel(tel){ tel = String(tel); return tel.replace ...

  8. 解决ubuntu18环境matplotlib无法正常显示中文

    首先看看系统装了中文字体没?命令: fc-list :lang=zh 如果没安装,需要去下载或者从win复制一份到ubuntu, 在/usr/share/fonts文件夹下创建一个chinese文件夹 ...

  9. k8s volumes

    NFS: apiVersion: v1 kind: Pod metadata: name: test-pd spec: containers: - image: registry.k8s.io/tes ...

  10. 一个MySQL双引号把我坑惨了!

    一.前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨. 二.过程 由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新, ...