docker使用

什么是Docker

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

Docker特性

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

Docker三个基本要素

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

容器与虚拟机

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

容器解决的问题

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

docker使用_第2张图片

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使用_第3张图片


如何在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使用_第4张图片

容器的启动和停止

•显示所有容器: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

•登录 http://172.18.96.227:8080进行查看


根据容器创建镜像

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


将镜像上传到自己的docker云

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




你可能感兴趣的:(其他)