Docker简介及基本命令

Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,
然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),
更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 
和 EE(Enterprise Edition: 企业版),我们用社区版就可以了

Docker官网:https://www.docker.com/

Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

Docker 的优点

1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

Docker的架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类

Centos7安装Docker

我们切换到root用户
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新

yum update -y

3、卸载旧版本(如果安装过旧版本的话)

 yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

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

5、设置yum源

 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、安装最新版本的Docker

yum install docker-ce docker-ce-cli containerd.io -y -y

7、启动Docker并设置开机启动

 systemctl start docker
 systemctl enable docker

8、验证Docker

docker version

在这里插入图片描述
说明安装OK

Docker HelloWorld测试

docker run hello-world

默认的远程仓库 https://hub.docker.com/ 网速稀烂
配置下阿里云的镜像仓库
因为本地没有这个镜像,所以从远程官方仓库去拉取,下载
然后我们再执行一次

Docker默认远程仓库是https://hub.docker.com/

比如我们下载一个大点的东西,龟速

由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;
所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

配置步骤如下:

1、登录进入阿里云镜像服务中心,获取镜像地址
进入阿里云容器镜像服务地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
使用你的淘宝账号密码登录

在这里插入图片描述

2、在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

{
“registry-mirrors”: [“https://xxxxxxx.mirror.aliyuncs.com”]
}

3、重启daemon
systemctl daemon-reload

4、重启docker服务
systemctl restart docker

5、测试

由于速度太快,截图都难;

Docker基本命令

启动Docker

systemctl start docker

停止Docker

systemctl stop docker

重启Docker

systemctl restart docker

开机启动Docker

systemctl enable docker

查看Docker概要信息

docker info

查看Docker帮助文档

docker --help

查看Docker版本信息

docker version

Docker镜像常用命令

列出本机所有镜像

docker images

搜索镜像

docker search  镜像名:镜像版本

下载镜像

docker pull 镜像名:镜像版本

注意:不加TAG,默认下载最新版本latest

docker rmi 删除镜像

docker rmi 镜像名称:[TAG]

如果不写TAG,默认删除最新版本latest
有镜像生成的容器再运行时候,会报错,删除失败
我们需要加 -f 强制删除

删除多个:

docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

删除全部:

docker rmi -f $(docker images -qa)

Docker 容器常用命令
启动普通容器:

 docker run --name 别名 镜像ID

启动交互式容器:

docker run -it --name 别名 镜像ID 

来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端

注意:
1、启动普通容器的方式基本不用,没有伪终端,没有太大价值;
2、启动交互式容器的方式,容器一创建完毕,立即进入伪终端

端口映射:
docker run -it -p 8888:8080 tomcat
docker run -it -P tomcat

Docker列出正在运行的容器

docker ps

Docker列出所有容器

docker ps -a

显示最近创建的2个容器

docker ps -n 2  

查看停止的容器

docker ps -f status=exited 

Docker退出容器

exit 容器停止退出
ctrl+P+Q 容器不停止退出

Docker进入容器

docker attach 容器ID or 容器名 
docker exec -it 容器名称 或者 容器ID 执行命令(推荐使用)

Docker启动容器

docker start 容器ID or 容器名

Docker重启容器

docker restart 容器ID or 容器名

Docker停止容器

docker stop 容器ID or 容器名

暴力删除,直接杀掉进程 (不推荐)

docker kill 容器ID or 容器名

Docker删除容器

docker rm 容器ID  

如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除:

docker rm -f 容器ID

删除多个容器

docker rm -f 容器ID1  容器ID2 中间空格隔开

删除所有容器

docker rm -f $(docker ps -qa)

Docker容器日志

简单粗暴方式,直接去docker容器文件里找;
具体未知:/var/lib/docker/containers/

over…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值