Docker简单入门

Docker入门

概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

沙盒也叫沙箱,英文 sandbox。在计算机领域指一种虚拟技术,且多用于计算机安全技术。安全软件可以先让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成任何危害。

Docker是一个平台,它提供哪些服务呢?任何一台装有Docker的机器上你都可以建立、发布、运行你的应用程序。

操作系统上面的虚拟化

1 Docker简介

1.1 产生背景

1开发和运维之间因为环境不同而导致的矛盾(不同的操作系统、软件环境、应用配置等)DevOps

2集群环境下每台服务器都配置相同的环境,太麻烦

3 解决“在我的机器_上可以正常工作”的问题,运维部署后无法正常的现象。

1.2 Dcoker和虚拟机

 

各种虚拟机技术开启了云计算时代;而Docker,作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式。那虚拟机与Docker究竟有何不同呢?首先,大家需要明确一点,Docker容器不是虚拟机!

第一次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为Docker最初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给大家宣传,"虚拟机需要数分钟启动,而Docker容器只需要50毫秒"。

 

 

Docker简化了环境部署和配置,实现“一次构建,处处运行”,避免了因运行环境不一致而导致的异常

可以将Docker简单的认为是一个虚拟机,可以运行各种软件环境的虚拟机,但与传统虚拟机技术有所不同

Docker容器技术与传统虚拟机技术的区别:

传统虚拟机技术:模拟一个完整的操作系统,先虚拟出一套硬件,然后在其上安装操作系统,最后在系统上再运行应用程序

缺点:资源占用多,启动慢

Docker容器技术:不是模拟一个完整的操作系统,没有进行硬件虚拟,而是对进程进行隔离,封装成容器,容器内的应用程序是直接使用宿主机的内核,且容器之间是互相隔离的,互不影响

优点:更轻便、效率高、启动快、秒级

1.3 Dcoker 术语

 Docker主机(Host)

安装了Docker程序的主机,运行Docker守护 进程

Docker镜像 (Image)

将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器

Docker容器 (Container)

运行镜像后生成的实例称为容器,每运行一次镜像就会产生一个容器,容器可以启动、停止或删除容器使用是沙箱机制,互相隔离,是独立是安全的可以把容器看作是一个简易版的Linux环境,包括用户权限、文件系统和运行的应用等

Docker仓库 (Repository)

用来保存镜像的,仓库中包含许多镜像,每个镜像都有不同的标签Tag

 

容器技术的核心概念有容器(container)、镜像(image)、仓库(registry)三个。

Docker容器 (Container):具体的运行应用程序的一个进程,它里面包含应用程序的各种依赖。

Docker镜像 (Image):创建容器的模板,根据不同配置的镜像来创建不同的容器使用。镜像和容器的关系可以理解为面向对象中类和实例对象的关系。

Docker仓库 (Repository):一个镜像只可以创建一种类型的容器,镜像多了就需要放到镜像仓库中存起来,仓库有本地镜像仓库和公共镜像仓库。

 

2 理解Docker容器和镜像

容器(container)和镜像(image)之间的区别和联系。

镜像(Image)就是一堆只读层(read-only layer)的统一视角。

容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。

 

3 Docker安装

3.1 安装Docker依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

3.2 安装Docker程序

yum install -y docker*

3.3 Docker实例管理

docker version                   #查看版本

docker info                      #查看docker 信息

systemctl start docker        #启动

systemctl stop docker        #停止

systemctl status docker      #查看 状态

systemctl restart docker     #重启

systemctl enable docker     #设置开机自动启动

systemctl daemon-reload

 

 

3.4 设置Docker镜像加速

{"registry-mirrors": ["http://11-p2p.swr.cn-north-4.myhuaweicloud.com:8090","https://11-p2p.swr.cn-north-4.myhuaweicloud.com:8090"], "insecure-registries": ["11-p2p.swr.cn-north-4.myhuaweicloud.com:8090"], "log-driver":"json-file", "log-opts":{"max-size":"500M","max-file":"3"} }

systemctl daemon-reload

 

四 Docker操作

4.1 镜像操作

docker search 关键字 , 查找,可以在Docker Hub网站查看镜像的详细信息,如镜像的tag标签

docker pull 镜像名:tag,抽取,:tag表示软件的版本,如果不指定默认是latest。就是下载

docker images,列表,查看所有本地镜像

docker inspect镜像id,获取元信,获取镜像的元信息,详细信息

docker rmi -f 镜像id或镜像名:tag,删除删除指定的本地镜像,-f表示强 制删除

docker 显示有多少命令

docker info –help 显示命令用法

下载redis最新版本

[root@pg11m ~]# docker pull redis

Using default tag: latest

latest: Pulling from library/redis

68ced04f60ab: Pull complete

7ecc253967df: Pull complete

765957bf98d4: Pull complete

91fff01e8fef: Pull complete

76feb725b7e3: Pull complete

75797de34ea7: Pull complete

Digest: sha256:ddf831632db1a51716aa9c2e9b6a52f5035fc6fa98a8a6708f6e83033a49508d

Status: Downloaded newer image for redis:latest

 

docker rmi -f $(docker images)

docker image rm $(docker images | awk '{ print $1}' | tail -n +2):$(docker images | awk '{ print $2}' | tail -n +2)

强制删除某个应用

docker rmi -f $( docker images |grep keepalived | awk '{ print $1}' )

4.2 容器操作

4.2.1 运行容器

运行容器和启动容器是有区别的,启动容器是启动已经运行但停止的容器。

docker run --name容器名-i-t -p主机端口:容器端口-d -V主机目录:容器目录:ro镜像id或镜像名称:tag。

--name指定容器名,名称自定义,如果不指定会自动命名; -i 以交互模式运行,即以交互模式运行容器; -t 分配一个伪终端,即命令行,通常组合使用-it ; -p指定端口映射,将主机端口映射到容器内的端口; -d表示后台运行,即守护式运行容器; -V 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

docker run --name syjredis -it f0453552d7f2

4.2.2 查看容器

docker ps -a

查看容器 -a 所有容器

4.2.3 启动容器

docker start容器id或容器名称

4.2.4 停止容器

docker  stop 容器id或容器名称

4.2.5 删除容器

docker rm -f容器id或容器名称

-f 强制删除

4.2.6 查看容器日志

docker logs容器id或容器名称

4.2.7 在容器中执行

docker exec -it容器id或容器名称/bin/bash

进入正在运行的容器中并开启一个交互模式的终端,可以在容器中执行操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值