Docker 入门学习

  • 云计算平台分类简介

云计算平台包括IaaS基础设施即服务代表作openstack,PaaS平台即服务代表作Docker容器,LXC等,SaaS软件即服务我现在公司所用的Bugclose等等服务

IaaS云计算架构主要为基础运维人员服务,提供计算,网络,存储,及其他基础资源,单独的OS,云平台使用者可以在上面部署运行不同操作系统任意应用程序,无需担忧传统机房中的硬件,空调扇热,电压,网络交换机等等

PaaS架构主要为应用开发人员服务,提供支持软件应用运行所需的运行时环境,共用OS,让开发测试人员更专注核心业务不在为底层系统等等费心

SaaS架构主要为普通用户服务,提供全套服务,用户只需通过浏览器或客户端即可使用云端上的SaaS服务,不需要关注技术细节

  • Docker简介

Docker是一个轻量级虚拟化技术支持多种操作系统windows Linux MacOS,它由Google的go语言所编写,加入了 Linux 基金会, 遵从了 Apache 2.0 协议, 项目代码在 GitHub 上进行维护,Docker 的特点 build ship and run  Any App,Anywhere。即通过对应用组件的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。结合持续集成,持续交付,开发,测试,发布一体化爽歪歪。

本文主要以Centos为基础学习Docker技术,Docker对Linux操作系统要求内核版本在3.10以上,因为要支持Cgroup,namespace实现资源隔离。Centos7系列

 

下图是容器和VM之间的架构区别

下图是Docker整个软件系统架构图

 

  • Docker命令学习 

 

  • 运行容器镜像方式
#第一个Docker运行命令,从centos镜像启动一个容器并运行echo命令打印“hello world”  命令执行完成立即退出
[root@apptest ~]# docker run centos echo "hello world"
hello world

  

  • 容器的启动停止
#docker start|stop|restart 表示启动停止重启一个已经存在的容器

[root@apptest ~]# docker start -i 5108809ffe73 
hello world
[root@apptest ~]# docker start -ia 5108809ffe73 
hello world

[root@apptest ~]# docker stop 1ca45031e506
1ca45031e506

[root@apptest ~]# docker restart  5108809ffe73
5108809ffe73

  

 

  • 容器运行在后台的方式
#容器运行于后台会返回一段 64位的16进制字符串作为该容器的唯一标识,-i 使用交互模式,始终保持stdin模式,-t分配一个伪终端,-d表示后台运行,一般-itd结合使用,-p  端口映射,-v volume挂载
[root@apptest ~]# docker run -itd centos /bin/sh
ee0450670f0f21f78974d785102251a1b23b91edd0a5ea142f49d416ed0d16c7
#attach ‘容器标识的前12位 用docker ps查看该编码’ 连接到正在运行的容器与容器主进程进行交互,但运行该命令后会退出会导致容器也退出,不建议使用该命令
[root@apptest ~]# docker attach ee0450670f0f
sh-4.2# ls
anaconda-post.log  bin	dev  etc  home	lib  lib64  media  mnt	opt  proc  root  run  sbin  srv  sys  tmp  usr	var
#exec -i 使用交互模式,始终保持stdin模式,-t分配一个伪终端,一般-it结合使用
[root@apptest ~]# docker exec -it 1ca45031e506 /bin/sh
sh-4.2# 

  

  • docker查看容器状态和删除容器
#查看正在运行的容器
[root@apptest ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
ee0450670f0f        centos              "/bin/sh"           8 seconds ago       Up 7 seconds                             romantic_lichterman
6d453360502f        nginx               "/bin/sh"           3 minutes ago       Up 3 minutes        0.0.0.0:88->80/tcp   ecstatic_khorana
#查看所有状态容器
[root@apptest ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS                NAMES
#运行状态的容器 “Up”
6d453360502f        nginx               "/bin/sh"              11 seconds ago      Up 10 seconds              0.0.0.0:88->80/tcp   ecstatic_khorana
#退出状态的容器 “Exited”
c72d18be268b        centos              "echo 'hello world'"   2 minutes ago       Exited (0) 2 minutes ago                        peaceful_perlman

#查找当前环境所有docker的id
[root@apptest ~]# docker ps -a -q
ee0450670f0f
6d453360502f
c72d18be268b

  

#删除属于退出状态的容器使用docker rm ID
[root@apptest ~]# docker rm 5108809ffe73
5108809ffe73
#不能使用直接使用rm删除已经运行的容器
[root@apptest ~]# docker rm 1ca45031e506 
Error response from daemon: You cannot remove a running container 1ca45031e506c9677db48803f21456418d1819ece03338e01c74ccf6efe9d6ff. Stop the container before attempting removal or force remove
#删除属于运行状态的容器 docker rm -f ID
[root@apptest ~]# docker rm -f  1ca45031e506
1ca45031e506

#删除当前环境的所有状态的容器
[root@apptest ~]# docker rm -f `docker ps -a -q`
ee0450670f0f
6d453360502f
c72d18be268b

  

  •  镜像搜索拉取管理

#镜像搜索 search
[root@apptest ~]# docker search tomcat
NAME                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
tomcat                                Apache Tomcat is an open source implementati…   1793                [OK]                
tomee                                 Apache TomEE is an all-Apache Java EE certif…   49                  [OK]                
dordoka/tomcat                        Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   48                                      [OK]

#镜像下载 pull
[root@apptest ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
c73ab1c6897b: Pull complete 
1ab373b3deae: Pull complete 
b542772b4177: Pull complete 
0bcc3741ab14: Pull complete 
421d624d778d: Pull complete 
26ad58237506: Pull complete 
8dbabc90b2b8: Pull complete 
982930be204d: Pull complete 
80869be51738: Pull complete 
b71ce0f0260c: Pull complete 
b18814a5c704: Pull complete 
e3fbb69d7797: Pull complete 
f2a4b7aaa851: Pull complete 
Digest: sha256:15f12b529a268986eb86224477f22ddfdf4a42383d6758ea14eaed10b3c8a8e9
Status: Downloaded newer image for tomcat:latest

  

#查看
[root@apptest ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              4db09019de0d        4 days ago          554MB
nginx               latest              7f70b30f2cc6        2 weeks ago         109MB
haproxy             latest              b7666c46ad75        2 months ago        70.9MB
ubuntu              latest              2a4cca5ac898        2 months ago        111MB
centos              latest              ff426288ea90        3 months ago        207MB
redis               latest              1e70071f4af4        3 months ago        107MB
django              latest              eb40dcf64078        15 months ago       436MB
[root@apptest ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              4db09019de0d        4 days ago          554MB
nginx               latest              7f70b30f2cc6        2 weeks ago         109MB
haproxy             latest              b7666c46ad75        2 months ago        70.9MB
ubuntu              latest              2a4cca5ac898        2 months ago        111MB
centos              latest              ff426288ea90        3 months ago        207MB
redis               latest              1e70071f4af4        3 months ago        107MB
django              latest              eb40dcf64078        15 months ago       436MB

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2018-04-08 13:54  mictiger  阅读(94)  评论(0)    收藏  举报