docker简介

Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。

docker的三大概念

  镜像:我们可以理解为系统盘的dvd镜像,轻量级的镜像文件

  仓库:存储docker镜像

  容器:是基于镜像运行的,容器实例

docker的安装

1.安装docker

  yum install docker -y

2.启动docker

  systemctl  start docker

3.docker加速器下载,以及配置 

  curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
  会生成一个docker配置文件,路径是/etc/docker/daemon.json

4.配置了docker加速器,需要重启docker

  systemctl restart docker

docker基本命令

  增:

    docker pull 镜像名字   #下载镜像

    docker run 镜像名字  #运行镜像,产生容易实例

    docker run -it 镜像名字 /bin/bash  参数解释: -i 交互式的命令操作 - t 开启一个终端提供访问  /bin/bash  指定shell解释器

    docker run -it --rm 94e /bin/bash      --rm 运行容器,退出后,删除容器记录

    docker run -d centos /bin/sh -c "while true;do echo 好嗨哦,感觉人生到达了巅峰; sleep 1;done"

      -d 后台运行 

      centos 指定镜像文件
      /bin/sh 指定shell解释器
      -C 指定一个shell语句

  删:

   docker rm 容器id

   docker rm `docker ps -aq`   批量删除容器记录

   docker rm -f `docker ps -aq` 强制删除所有的容器记录

   docker rmi 镜像id   删除镜像记录

   docker  rmi `docker images -aq` 批量删除镜像文件

  改:

   docker tag 镜像id 新的名字   修改docker镜像名,tag标记名

   docker run  --name  myredis 94e  /bin/bash

  查:

   docker image ls   查看docker镜像的命令

   docker  images   #等于上述命令,产看镜像

   docker container ls   查看正在运行的容器进程

   docker ps       只能查看正在运行的容器

   docker ps -a  查看所有的容器记录

   docker search centos   查看docker镜像记录

   docker logs  容器id  查看容器空间内的日志

   docker logs -f 不间断的打印容器内日志信息

   docker exec -it 容器id /bin/bash   #进入正在运行的容器空间

  启动和停止

   docker stop 容器id

   docker start 容器id

######注意:docker容器必须有后台程序在运行,否则就退出

学习Dockerfile

#制作base image 基础镜像,尽量使用官方的image作为base image
FROM scratch
#使用base image
FROM centos
FROM ubuntu:14.04 #带有tag的base image
#指定一个基础镜像 LABEL version=“1.0” #容器元信息,帮助信息,Metadata,类似于代码注释
LABEL maintainer=“yc_uuu@163.com" #对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
RUN yum update && yum install -y vim \
Python-dev #反斜线换行
RUN /bin/bash -c "source $HOME/.bashrc;echo $HOME” #run指令是一个万能指令 WORKDIR /root #相当于linux的cd命令,改变目录,尽量使用绝对路径!!!不要用RUN cd
WORKDIR /test #如果没有就自动创建
WORKDIR demo #再进入demo文件夹 #ADD是添加文件,从物理机本地,添加到容器空间内 ADD and COPY
ADD hello / #把本地文件添加到镜像中,吧本地的hello可执行文件拷贝到镜像的/目录
ADD test.tar.gz /tmp #添加到根目录并解压 #并且ADD指令还有 解压缩的功能

打包一个程序和Dockerfile

1.准备一个flask代码文件
[root@master mydocker]# cat s17-flask.py #coding:utf8
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
return " hello,flask"
if __name__=="__main__":
app.run(host='0.0.0.0',port=8080) 2.准备构建dockerfile,用于生成镜像 FROM centos #指定一个基础镜像
COPY CentOS-Base.repo /etc/yum.repos.d/ #拷贝本地的yum仓库,到容器空间内
COPY epel.repo /etc/yum.repos.d/ #
RUN yum clean all
RUN yum install python-setuptools -y
RUN easy_install flask
COPY s17-flask.py /opt/
WORKDIR /opt
EXPOSE 8080 #暴露容器的8080端口,供给物理机去映射访问
CMD ["python","s17-flask.py"] #cmd代表执行命令 3.准备 CentOS-Base.repo epel.repo 4.确保 dockerfiel,flask代码,yum仓库文件,在同一层目录 5.构建镜像
docker build . 6.检查docker镜像文件,是否有自己创建的镜像 7.修改镜像的名字 docket tag 镜像名 新的镜像名 8.运行镜像,生成容器实例
docker run -p 8080:8080 -d 04b 9.检查docker端口映射状态
docker port 容器id 10.访问windows,找到容器内的应用

  

   

linux-----docker的更多相关文章

  1. Win10 & Linux Docker 安装使用

    Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...

  2. .NET Core 图片操作在 Linux/Docker 下的坑

    一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...

  3. Linux - docker基础

    目录 Linux - docker基础 docker的概念 docker安装流程 docker基本命令学习 docker 的 hello docker 运行一个ubuntu容器 Docker与Cent ...

  4. Asp.Net Core采用MailKit部署到Linux Docker连接邮件服务器报错

    前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api ...

  5. DELPHI开始支持LINUX DOCKER

    DELPHI开始支持LINUX DOCKER 本方翻译自Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级容器而不是物理机器或虚拟机已经变得越 ...

  6. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  7. Linux Docker的部署

    1.安装 $ yum -y install docker 2.启动docker服务 $ systemctl start docker 3.设置开启自启 $ systemctl enable docke ...

  8. .NetCore&Linux&Docker&Portainer踩坑历险记

    最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...

  9. linux ---docker篇

    Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...

  10. Linux Docker命令

    命令查看你当前的内核版本:uname -r yum 包更新到最新:yum update 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemap ...

随机推荐

  1. 识别率很高的java文字识别技术

    java文字识别程序的关键是寻找一个可以调用的OCR引擎.tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google.tesseract-ocr ...

  2. 一文让你明白Redis主从同步

    今天想和大家分享有关 Redis 主从同步(也称「复制」)的内容. 我们知道,当有多台 Redis 服务器时,肯定就有一台主服务器和多台从服务器.一般来说,主服务器进行写操作,从服务器进行读操作. 那 ...

  3. invokedynamic字节码指令

    1. 方法引用和invokedynamic invokedynamic是jvm指令集里面最复杂的一条.本文将从高观点的角度下分析invokedynamic指令是如何实现方法引用(Method refe ...

  4. Python3中性能测试工具Locust安装使用

    Locust安装使用: 安装: python3中           ---> pip3 install locust 验证是否安装成功---> 终端中输入 locust --help  ...

  5. 【Python3爬虫】自动查询天气并实现语音播报

    一.写在前面 之前写过一篇用Python发送天气预报邮件的博客,但是因为要手动输入城市名称,还要打开邮箱才能知道天气情况,这也太麻烦了.于是乎,有了这一篇博客,这次我要做的就是用Python获取本机I ...

  6. 前端笔记之服务器&Ajax(上)服务器&PHP&数据交互&HTTP

    一.服务器 1.1 什么是服务器,做什么的? 服务器,就是放在机房中的电脑,和我们的电脑的区别在与服务器有固定的IP,服务器的安全性和稳定性相当的高;性能一般就可以了,但是CPU的性能要比普通的客户机 ...

  7. Asp.Net Core 轻松学-实现跨平台的自定义Json数据包

    前言     在前后端分离的业务开发中,我们总是需要返回各种各样的数据包格式,一个良好的 json 格式数据包是我们一贯奉行的原则,下面就利用 Json.Net 来做一个简单具有跨平台的序列化数据包实 ...

  8. Asp.Net Core 轻松学-利用文件监视进行快速测试开发

    前言     在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试:在这个过程中,程序员的大部分时间几乎都花费在开发.运行 ...

  9. 分享基于 websocket 网页端聊天室

    博客地址:https://ainyi.com/67 有一个月没有写博客了,也是因为年前需求多.回家过春节的原因,现在返回北京的第二天,想想,应该也要分享技术专题的博客了!! 主题 基于 websock ...

  10. jQuery(九)、ajax对象操作

    1 数组和对象操作 1.jQuery.extend([deep,] target, object1, [objectN]) 用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 如果不指定targe ...