0. 扫盲

1. 各种软件用什么语言写的

- zabbix(监控软件):php
- ansible(批量管理主机,执行命令,无angent):python
- openstack(云计算,管理虚拟机):python
- jekins(ci/di):自动化部署,java
- salstack(批量管理主机,执行命令,有angent):python
- 普罗米修斯(Prometheus,监控):go写的
- docker:go
- k8s:go

2. 什么是虚拟化?

- 虚拟化:打破实体结构间的不可切割的障碍
- vmware,kvm,openstack,docker,k8s的区别- 云服务器:vmware,kvm虚拟化出来的- 阿里云,腾讯云,opensatck,阿里飞天,用来管理虚拟化出来的操作系统- docker:进程级别的隔离,装在虚拟机,云服务器上,一个云服务上开业跑出成几百个docker容器,成百上千的服务器上,就会有个上万个容器- k8s:不同机器的上万个容器如何管理

3. 什么是Docker?

- Go语言实现,开源出来,很多人用
- docker-ce(免费),docker-ee(收费)
- 通过go语言对lxc技术的一个封装
- 上手快,简单
- Docker是一个客户端-服务器(C/S)架构程序(mysql,redis都是cs架构),整套RESTful API
- docker非常重要的概念:镜像(image)与容器(container)有了镜像---》镜像运行起来是容器(真正的执行单位)
- 镜像是从哪里来的?- 镜像就是一堆文件- 从远程仓库获取(拉取)

3 容器与虚拟机比较

- docker不需要虚拟硬件和操作系统,轻量级,占用体积小,启动快

一. docker安装

1. ubuntu(18.04)下安装docker

a. 更新ubuntu的apt源索引

sudo apt-get update

b. 安装包允许apt通过HTTPS使用仓库

sudo dpkg --configure -a
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

 c. 添加Docker官方GPG key【这个是国外服务器地址,所以网路不好的时候,会失败!在网路好的情况下,多执行几次就没问题了】

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

d. 设置Docker稳定版仓库

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

e. 添加仓库后,更新apt源索引

sudo apt-get update

f. 前面的准备工作完成以后,接下来安装最新版Docker CE(社区版)

sudo apt-get install docker-ce

g. 检查Docker CE是否安装正确

sudo docker run hello-world

h. 出现了helo from Docker则表示上面的安装成功!

i.  卸载

sudo apt-get remove docker docker-engine docker.io containerd runc

2. centos(版本必须7以上,这里使用7.5)安装docker

a. 更新yum

yum update

b. 安装需要的软件包, yum-util 

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

c. 执行(向你的yum源,增加一条记录)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

d. 安装 

yum install docker-ce

e.  验证安装(查看版本)

docker -v 

f. 卸载

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine

二. docker启动/停止/重启

启动docker服务
systemctl start docker停止docker服务,
systemctl stop docker重启docker服务
systemctl restart docker开机启动
systemctl enable docker查看概要信息
docker info(你可能写了一个管理docker的运维平台)

三. 换源以及官网(适用于ubuntu/centos7.5的docker)

1. 配置加速(之前去https://hub.docker.com/)。

阿里云,清华,做了一个备份,配置好以后,再拉镜像会去国内地址拉取

第一步:

vim /etc/docker/daemon.json

第二步: 

# 换一个
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}# 换多个
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn,"https://kfwkfulq.mirror.aliyuncs.com","https://2lqq34jg.mirror.aliyuncs.com","https://pee6w651.mirror.aliyuncs.com","https://registry.cn-hangzhou.aliyuncs.com", # 阿里云源"https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

 第三步 重启docker

systemctl daemon-reload
systemctl restart docker

2. 官网

docker官网https://hub.docker.com/

四. 镜像操作

1. 查看镜像

a. 格式

docker image ls

b. 简写

docker images

2. 拉取镜像

 a. 格式

docker image pull redis

 b. 简写

docker pull redis

c. 拉取指定的版本(默认拉的最新版)   格式:docker pull 镜像名称:版本

docker pull python:3.6

3. 删除镜像(如果该镜像创建了容器,必须先删除容器)

a. 格式

docker image rm 镜像名称/镜像ID

b. 简写

docker rmi 镜像名称/镜像ID

4. 镜像打包/解压(会打包成一个tar压缩文件)

打包

docker save -o <文件名.tar.gz>  <镜像名>  或者 <文件名.tar>  <镜像名> 

 案例

docker save -o redis.tar redisdocker save -o mydjango.tar mydjango

解压

docker load -i <文件名.tar.gz>  或者 <文件名.tar>

案例

docker load -i mydjango.tar

五. 容器操作[container]

1. 创建容器

必须先有镜像,才能运行创建容器,需要指定使用的镜像名,并且设置创建容器以后,执行对应的第一条命令。

创建并运行容器

docker run <参数选项>  <镜像名称>

案例(几条常用的):

# 基于nginx镜像创建一个容器并运行---访问80端口即可看到nginx的页面
docker run -di --name=nginx -p 80:80 nginxdocker run -di --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7docker run -di --name=redis -p 6377:6379 redis:latest

参数介绍:

-创建并启动(run)-i:表示运行容器-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。--name :为创建的容器命名。如果不写,会自动分配一个名字(英文人名)-v:表示目录映射关系(前者是宿主机目录,后者是容器目录,映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

命令介绍:

/bin/bash  一直等待,容器不停止 exec真正的作用是在容器内执行命令

2. 进入容器的几种方式(并不是真进入)

第一种:docker exec -it  容器id /bin/bash第二种:ssh连接(容器内部装ssh服务端)

案例

docker exec -it 14166 /bin/bash

3. 退出容器

exit

4. 删除容器

docker  container rm <容器名称/容器ID>

5. 高级操作

10 文件拷贝(都是站在容器外cp,因为容器内没有docker)-从宿主机拷贝到容器内部格式:docker cp 文件 容器id:容器内路径案例:docker cp test.txt 1416:/home-从容器内部拷贝到宿主机格式:docker cp 容器id:容器内路径/文件 容器外路径案例:docker cp 14166:/home/test.txt /home/11 目录挂载(外部与内部双向绑定,外改内改,内改外改)  # 一旦挂载,以后宿主机目录内修改,同样影响容器内部格式:docker run -di --name=xxx -v 宿主机路径:容器内路径 镜像案例:docker run -di --name=t1 -v /home/ymq:/home/ centos
12 端口映射格式:docker run -di -p 宿主机端口:容器端口 镜像案例:docker run -di -p 6377:6379 redis:latest

6. 其他操作

3 查看机器上正在运行的容器docker ps
4 查看宿主机上所有的容器(包括停止的)docker ps -a
5 停止容器docker stop 容器名字/id号
6 启动容器docker start 容器id/名字
13 查看容器详细信息docker inspect f81# 查看ip地址docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
14. 杀死容器docker container kill <容器名称/容器ID>

7.容器保存为镜像

docker commit 容器名字 镜像名字
docker commit 19b mydjango

docker介绍+下载+基础操作---ubuntu/centos相关推荐

  1. 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用

    文章目录 Docker简介和安装和基础配置 Docker简介 安装Docker Desktop 换源 Docker基础使用 对Docker操作 对镜像的基础操作 获取当时所有镜像(docker ima ...

  2. SQL(一)- 数据库介绍与基础操作

    数据库介绍 一.常用的数据库分为两大类: 关系型数据库 非关系型数据库(NoSql) 关系型数据库 概念:是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据. 关系型数 ...

  3. docker 鱼龙混杂之基础操作篇

    查询docker版本: docker version 本地所有镜像: docker images 拉去镜像: docker pull tomcat:版本 重新加载配置:sudo systemctl d ...

  4. Linux介绍和基础操作

    文章目录 操作系统Linux Linux基础知识 1. Linux 的概述 2. Linux 的历史 3. Linux系统的应用 3.1 服务器系统 3.2 嵌入式系统 3.3 桌面应用系统 3.4 ...

  5. Docker原理与基础操作

    目录 Docker原理 使用场景: Docker核心概念与安装方式 Docker与虚拟机区别 yum仓库安装docker 安装依赖包 设置阿里云镜像源 安装Docker-ce 启动docker 镜像加 ...

  6. 数据结构之优先队列:优先队列的介绍与基础操作实现,Python代码实现——14

    优先队列(Priority queue)的介绍 优先队列是计算机中一种抽象的数据结构类,它有着一个类似和队列或者堆的结构,但是其中每个元素额外有一个优先级别 在一个优先队列中,一个高优先顺序的元素会先 ...

  7. HTML介绍 与基础操作

    1.什么是HTML? HTML 是用来描述网页的一种语言.     HTML 指的是超文本标记语言: HyperText Markup Language     HTML 不是一种编程语言,而是一种标 ...

  8. 基础操作--Ubuntu常用命令

  9. linux jdk1.8 64位下载永久地址,ubuntu,centos,java

    https://pan.baidu.com/s/1A4cl3vUWCtiHxJ9eHK2ApQ  密码:j8dg 转载于:https://www.cnblogs.com/avit/p/11167487 ...

最新文章

  1. 自动化运维之SaltStack实践
  2. SQLite 3 一些基本的使用
  3. envi与arcgis文件转换_ArcGIS、MapInfo、ENVI、MapGIS等矢量格式相互转换
  4. python中的列表是采用链式结构实现的_Python数据结构与算法之列表(链表,linked list)简单实现...
  5. flex textinput 输入限制(数字、字母)
  6. P3389 【模板】高斯消元法
  7. UVA489 Hangman Judge【模拟】
  8. java excel 导入导出_java中excel文件的导入和导出
  9. wxpython 基本的控件 (文本)
  10. 近来很多人通过这个博文加关注,为何?
  11. .Net平台下安装DotNetBar
  12. VS应用程序无法正常启动0xc0150002
  13. SQL的概述及DDL
  14. 【C++】面向对象之多态篇
  15. 服务器登录信息记录,服务器记录远程桌面登录的信息
  16. 2021年低压电工考试资料及低压电工免费试题
  17. 我看 - 《梦断紫禁城》 的一些感想
  18. tinyipa make
  19. 洛杉矶警局用 AI “预测犯罪”;北欧银行拟裁员六千,用智能机器取而代之
  20. 海康监控系统行为识别服务器,基于海康视频监控系统的目标检测和跟踪

热门文章

  1. 计算机毕业设计JavaH5醉美南湾湖网站设计(源码+系统+mysql数据库+lw文档)
  2. 007_SSSSS_ Neural Ordinary Differential Equtions
  3. 李开复辞职前后的故事
  4. up and UP……
  5. 【Java基础】你会用 equals 和 == 吗
  6. UnityShader实例10:广告牌(Billboard)材质
  7. 解决方案提供商应该关注的28种最先进的存储产品
  8. Python输出带颜色的文字
  9. 邓应海:黄金冲高逼近1790后上演大逆转!最新黄金走势分析!
  10. 【微信小程序】蓝牙连接 流程