博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker使用
阅读量:4218 次
发布时间:2019-05-26

本文共 2410 字,大约阅读时间需要 8 分钟。

什么是Docker

•是一个开源的引擎。
•可以轻松的为任何应用创建一个轻量级、可移植、自给自足的容器。
•开发者在笔记本测试通过的容器可以批量的在生产环境中部署。

Docker特性

•速度飞快以及优雅的隔离框架
•物美价廉
•CPU/内存的低消耗
•快速开/关机
•跨云计算基础框架

Docker三个基本要素

•Docker Containers:负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
•Docker Image:是一个只读模块,用来运行Docker容器。
•DockerFile:是文件指令集,用来说明如何自动创建Docker镜像。

容器与虚拟机

•容器在Host操作系统的用户空间运行,与操作系统的其他进程隔离。这一点显著区别于虚拟机。

容器解决的问题

•Docker将集装箱思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。
•Docker可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。
•容器可以运行在几乎所有的操作系统上。

Docker镜像

•Docker架构中,Docker镜像类似于“ubuntu操作系统发行版”,可以在任何满足要求的linux内核上运行。
•Docker镜像的层级概念:在ubuntu镜像中安装MYSQL5.6,就完成了一个MYSQL镜像构建,此时ubuntu操作系统镜像成为MYSQL镜像层的父镜像。

传统虚拟机安装ubuntu:14.04会包含两部分,第一,某一个Linux内核的发行版本,比如Linux3.8版本的内核;第二,第一个特定的Ubuntu发行版,这部分内容不包含Linux内核,但是包含Linux之外的软件管理方式,软件驱动,如apt-get软件管理包等。

Docker镜像和容器

镜像就是一堆只读层,是静态的内容;容器属于动态的内容。Docker镜像是Docker容器运行的基础。

如何在Docker中运行nginx服务

两个思路:

1.pull一个centos镜像,再在该镜像上装一个nginx

2.直接pull装好的nginx镜像。

Docker服务端和客户端

•Docker服务端是一个服务进程,管理所有容器。
•Docker客户端是docker服务端的远程控制器,用来控制docker服务端进程。

Docker安装

安装最新docker

wget -qO-https://get.docker.com/ |sh

以非root用户直接运行docker

sudousermodaGdockertian

安装Centos7镜像

•docker pull centos:7.2.1511
•docker images

进入容器

•创建并进入容器:docker run 镜像ID
–-t表示在新容器内指定一个伪终端或终端
–-i表示允许我们对容器内的STDIN进行交互
–/bin/bash表明将会在容器内启动bash shell。
•打开容器:dockerstart 容器ID

可以用同一个镜像启动多个Docker容器,这些容器启动后都是活动的,彼此相互隔离。

docker run和docker start区别

Dockerrun相当于执行了两步操作:将镜像放入容器(docker create),然后将容器启动,使之变成运行时容器(docker start)。

容器的启动和停止

•显示所有容器:docker ps –a
•重命名容器名:docker rename old new
• 打开/关闭容器:docker [stop][start] name
•删除容器:docker rm
•Attach到已经打开容器的stdin:docker attach name
•进入已经打开的容器:docker exec -it name /bin/bash

退出Docker容器

当docker attach进入时:

•正常退出,不关闭容器,使用Ctrl+P+Q进行退出。
•退出并关闭容器,使用exit进行退出。
•使用CTRL+D来退出容器。

当docker exec进入时:

•退出容器:exit

Docker挂载到本地目录

•Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。

给运行中的容器添加端口映射

•创建容器时进行映射hostPort : containerPort

# docker run -p 8080:80 -it3c9d /bin/bash

•正在运行的容器添加端口映射

1.获得容器IP:

docker inspect 'docker-1602' | grep IPAddress

2.Iptable转发端口

iptables-t nat -A DOCKER -p tcp --dport9999 -j DNAT --to-destination 172.17.0.2:9999

shipyard:docker的web界面管理工具

功能:

1.简化对横跨多个主机的Docker容器集群进行管理。

2.可以通过web用户界面,大致浏览相关信息。比如容器使用多少处理器和内存资源、在运行哪些容器,以及检查所有集群上的事件日志。

shipyard部署

•安装shipyard

curl -s https://shipyard-project.com/deploy | bash -s

•登录 进行查看

根据容器创建镜像

在宿主机中执行:sudo docker commit name/id 要生成的镜像名:tag

将镜像上传到自己的docker云

docker login回车
Username:
Password:
login成功后可以通过docker push 镜像名来上传。
注意镜像名必须是"用户名/"开头的,且与docker云里创建的仓库名一致。

你可能感兴趣的文章
我的2020
查看>>
idea快捷键使用
查看>>
2.1MAC协议概述
查看>>
2.3 WSN的MAC协议
查看>>
图解后缀表达式的计算过程
查看>>
栈与队列的应用——计算表达式的值
查看>>
静态链表——sharing
查看>>
静态链表——sorting
查看>>
DFS——背包问题
查看>>
DFS——选数问题
查看>>
BFS——求矩阵中“块”的个数
查看>>
BFS——走迷宫的最小步数
查看>>
并查集——好朋友
查看>>
关键路径
查看>>
Python学习笔记——数据分析之Seaborn绘图
查看>>
Web前端学习笔记——JavaScript之事件详解
查看>>
Web前端学习笔记——JavaScript之事件、创建元素、节点操作
查看>>
Web前端学习笔记——JavaScript之正则表达式、伪数组、垃圾回收
查看>>
Web前端学习笔记——JavaScript 之继承、函数进阶
查看>>
Web前端学习笔记——JavaScript之面向对象游戏案例:贪吃蛇
查看>>