docker学习详解(一)

docker学习详解(一)

1.docker基础

(1)定义
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

(2)原理
docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。
(3)区别
Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件的基础上,虚拟出自己的系统,再在系统上部署相关的APP应用。
在这里插入图片描述
在这里插入图片描述
(4)优势

  • 操作启动快
  • 轻量级虚拟化
  • 开源免费
  • 前景及云支持
  • 更快速的交付和部署
  • 高效的部署和扩容
  • 更高的资源利用率
  • 更简单的管理

(5)组成
镜像:docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。
容器:使用镜像常见的应用或者系统,我们称之为一个容器。
仓库:仓库是存放镜像的地方,分为公开仓库(Public)和私有仓库(Private)两种形式。

(6)运行流程
在这里插入图片描述

  • docker pull:首先客户端client向Docker daemon发送命令docker pull,告诉Docker daemon要拉取哪个镜像,Docker daemon会先在本机检查这个镜像是否存在,如果存在并且版本一致,它不会做任何操作;如果不存在,它会到Docker的镜像仓库中寻找,如果找到了,就会把仓库中的镜像拉取到本地。

  • docker run:客户端将docker run命令发送到Docker deamon中,Docker deamon会先检查这个镜像是否在本地已经存在,如果不存在,它会到仓库中寻找,把镜像下载到本地,下载之后它会通过一定的方式把镜像运行起来,变成docker容器

2.docker引擎

3.安装

Docker在Windows上使用有两种方式,一是利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端,二是利用Windows的Hyper-v虚拟化技术,直接在Windows上安装docker服务端和客户端。WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker。

windows下安装
win7、win8 等需利用 docker toolbox 来安装,国内使用阿里云的镜像来下载,一路安装即可。

docker toolbox 是一个工具集,它主要包含以下一些内容:

Docker CLI 客户端,用来运行docker引擎创建镜像和容器
Docker Machine. 可以让你在windows的命令行中运行docker引擎命令
Docker Compose. 用来运行docker-compose命令
Kitematic. 这是Docker的GUI版本
Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境
Oracle VM Virtualbox. 虚拟机

首先配置国内的镜像源,在阿里云注册账号,然后选择容器镜像服务,如下图所示,找到加速器地址。win10配置加速器如下图说明所示。
在这里插入图片描述
win7配置加速器如下:

打开Kitematic (Alpha),选择Docker CLI
在这里插入图片描述
打开如下图所示,输入

docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://gead11xh.mirror.aliyuncs.com |g" /var/lib/boot2docker/profile
exit
docker-machine restart default

这样重启Docker后就可以用国内的镜像来加速下载了。
在这里插入图片描述
双击桌面上生成的Docker Quickstart Terminal,会进行Docker环境的初始化,会在VirtualBox中自动创建名字为【default】的linux虚拟机,再此过程中会用到boot2docker.iso镜像文件。把安装目录下将此文件拷至C:\Users\lenovo.docker\machine\cache目录下,然后会自动进行一些设置,出现如下图所示即表示安装成功,在$后输入各种Docker命令就可以使用Docker。
在这里插入图片描述
用putty登录,可能报expected key exchange group packet错,
在 PuTTY 的左侧窗格中,导航到“连接” > SSH > Kex。
在算法选择策略下,选择 “Diffie-Hellman group exchange”。
单击向下。此操作会将“Diffie-Hellman group exchange”移出第一个位置,以更改所用的算法。
如下图所示:
在这里插入图片描述

在这里插入图片描述
点击打开后输入docker/tcuser就可以在命令行下操作docker。
用户名是docker,密码是tcuser
在这里插入图片描述

4.常见命令

docker version #查看版本
docker search centos #搜索可用docker镜像
docker images #查看当前docker所有镜像
docker pull centos #下载镜像
docker ps -a #查看所有的容器
docker ps: #查看正在运行的容器
docker exec  -it 容器id或容器名 bash:#在运行的容器中运行命令
docker-machine ip #查看当前docker的虚拟IP地址
docker start id #启动某个容器
docker stop id #关闭容器
docker rm id #删除容器
docker rmi images #删除镜像

cat centos.tar | docker import - centos6_newname #Docker导入镜像
docker export 容器_id > cenos6.tar #Docker导出镜像
docker run centos echo "hello word" #在docker容器中运行hello world!
docker run centos yum install ntpdate #在容器中安装ntpdate的程序
docker ps -l #命令获得***一个容器的id
。
运行docker commit 提交刚修改的容器,例如:
docker commit 2313132 centos:v1
docker run -i –t -d centos /bin/bash 在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t 表示打开一个终端的意思,-i表示可以交互输入。
docker run -d centos:v1 /bin/bash ,-d表示在后台启动,以daemon方式启动。


docker run -d -p 80:80 -p 8022:22 centos:v2,解析:-p指定容器启动后docker上运行的端口映射及容器里运行的端口,80:80,***个80表示docker系统上的80,第二个80表示docker虚拟机里面的端口。用户默认访问本机80端口,自动映射到容器里面的80端口。
docker exec -it id /bin/bash #进入容器
1、docker pull [OPTIONS] NAME [:TAG]  :此命令的作用是从docker远程的仓库拉取镜像到本地 (命令中的NAME项是必填的代表我们需要拉取的镜像名称;  [:TAG]是可选的,是代表镜像的版本; [OPTIONS]是代表拉取的镜像参数)                      

例如:拉取hello-world镜像命令:docker pull hello-world

2、docker images [OPTIONS] [REPOSITORY[:TAG]]  :此命令是来查看我们本机都有哪些镜像,也可以验证我们的pull是否执行成功(命令中[OPTIONS]是镜像的参数; [REPOSITORY[:TAG]]是镜像的名称和版本)

docker images命令的参数含义:

REPOSTTORY  : 镜像名字

TAG  : 版本(lastest 最新版)

IMAGE ID  :  64 位的字符串,可以唯一标识镜像,这里只显示16位,后面的被截掉了。

CREATED : 创建时间 (最后修改时间)

SIZE : 大小

3、docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...]  :运行镜像,命令中IMAGE镜像名字项为必填项

4、docker run -d 镜像名:  后台运行容器


7、docker run --help: 可以查看docker run 都有哪些参数;

8、docker pull hub.c.163.com/library/nginx:latest  拉取nginx镜像

docker run hub.c.163.com/library/nginx  在前台运行Nginx;

docker run -d hub.c.163.com/library/nginx 在后台运行Nginx并打印相应运行Id;

9、 docker run -d -p 主机端口:容器端口 容器的名称:启动镜像,并执行映射端口

比如:docker run -d -p 8080:80 hub.c.163.com/library/nginx

docker run -d -P 容器名称: 启动镜像,并开放所有的端口与主机建立映射

10、docker stop 容器Id :停止docker

11、docker build -t 容器名称:版本 Dockerfile文件目录: 构建镜像

如:docker build -t demo:latest .

https://blog.csdn.net/weixin_42907809/article/details/87860925

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值