linux-----docker
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的更多相关文章
- Win10 & Linux Docker 安装使用
Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...
- .NET Core 图片操作在 Linux/Docker 下的坑
一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...
- Linux - docker基础
目录 Linux - docker基础 docker的概念 docker安装流程 docker基本命令学习 docker 的 hello docker 运行一个ubuntu容器 Docker与Cent ...
- Asp.Net Core采用MailKit部署到Linux Docker连接邮件服务器报错
前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api ...
- DELPHI开始支持LINUX DOCKER
DELPHI开始支持LINUX DOCKER 本方翻译自Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级容器而不是物理机器或虚拟机已经变得越 ...
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...
- Linux Docker的部署
1.安装 $ yum -y install docker 2.启动docker服务 $ systemctl start docker 3.设置开启自启 $ systemctl enable docke ...
- .NetCore&Linux&Docker&Portainer踩坑历险记
最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...
- linux ---docker篇
Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...
- Linux Docker命令
命令查看你当前的内核版本:uname -r yum 包更新到最新:yum update 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemap ...
随机推荐
- 识别率很高的java文字识别技术
java文字识别程序的关键是寻找一个可以调用的OCR引擎.tesseract-ocr就是一个这样的OCR引擎,在1985年到1995年由HP实验室开发,现在在Google.tesseract-ocr ...
- 一文让你明白Redis主从同步
今天想和大家分享有关 Redis 主从同步(也称「复制」)的内容. 我们知道,当有多台 Redis 服务器时,肯定就有一台主服务器和多台从服务器.一般来说,主服务器进行写操作,从服务器进行读操作. 那 ...
- invokedynamic字节码指令
1. 方法引用和invokedynamic invokedynamic是jvm指令集里面最复杂的一条.本文将从高观点的角度下分析invokedynamic指令是如何实现方法引用(Method refe ...
- Python3中性能测试工具Locust安装使用
Locust安装使用: 安装: python3中 ---> pip3 install locust 验证是否安装成功---> 终端中输入 locust --help ...
- 【Python3爬虫】自动查询天气并实现语音播报
一.写在前面 之前写过一篇用Python发送天气预报邮件的博客,但是因为要手动输入城市名称,还要打开邮箱才能知道天气情况,这也太麻烦了.于是乎,有了这一篇博客,这次我要做的就是用Python获取本机I ...
- 前端笔记之服务器&Ajax(上)服务器&PHP&数据交互&HTTP
一.服务器 1.1 什么是服务器,做什么的? 服务器,就是放在机房中的电脑,和我们的电脑的区别在与服务器有固定的IP,服务器的安全性和稳定性相当的高;性能一般就可以了,但是CPU的性能要比普通的客户机 ...
- Asp.Net Core 轻松学-实现跨平台的自定义Json数据包
前言 在前后端分离的业务开发中,我们总是需要返回各种各样的数据包格式,一个良好的 json 格式数据包是我们一贯奉行的原则,下面就利用 Json.Net 来做一个简单具有跨平台的序列化数据包实 ...
- Asp.Net Core 轻松学-利用文件监视进行快速测试开发
前言 在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试:在这个过程中,程序员的大部分时间几乎都花费在开发.运行 ...
- 分享基于 websocket 网页端聊天室
博客地址:https://ainyi.com/67 有一个月没有写博客了,也是因为年前需求多.回家过春节的原因,现在返回北京的第二天,想想,应该也要分享技术专题的博客了!! 主题 基于 websock ...
- jQuery(九)、ajax对象操作
1 数组和对象操作 1.jQuery.extend([deep,] target, object1, [objectN]) 用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 如果不指定targe ...