Docker 容器基础安装及常用语句

一、云计算三层架构

(1)SAAS应用及服务
devops CI/CD 持续交付/持续集成 极速迭代产品
(2)PAAS平台及服务
提供环境(数据库 docker kubernetes)
(3)IAAS基础设施及服务
提供硬件(服务器、网络设备、防火墙)虚拟化

二、Docker容器与虚拟机对比

参数/名称虚拟机容器
容量
系统逻辑隔离依赖于内核(共享)
安全
启动时间

三、Docker容器

(1)使用场景
  • 打包应用程序简化部署
  • 克托利底层硬件任意迁移
(2)核心概念

镜像:一个面向Docker容器引擎的只读模板

容器:从镜像创建的运行实例

仓库:集中保存镜像的地方

(3)AUFS 联合文件系统

一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加
同时可以将不同目录挂载到同一个虚拟文件系统下。

联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
(4)小知识
docker文件夹在/etc下docker文件 如果没有先开启docker服务

镜像有别名的情况下是无法直接通过ID删除镜像

四、安装及优化

此次安装docker分为三个阶段

  • 环境安装
  • 镜像加速
  • 网络优化
(1)环境安装

关闭防火墙策略

systemctl stop firewalld.service
systemctl disable firewalld.serice
setenforce 0

vim /etc/selinux/config
SELINUX=disabled

安装环境及软件

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

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

yum install docker-ce
'需要花费一些时间'

systemctl start docker
systemctl enable docker

在这里插入图片描述

(2)镜像加速

因为下载镜像的速度较慢,需要使用下阿里的加速器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker

在这里插入图片描述

五、常用语句

(1)镜像操作
'查看docker版本信息'
docker version 
'搜索镜像'
docker search 关键字 
docker search 关键字 --filter=筛选条件
'获取镜像(下载)'
docker pull 仓库名称[:标签] 
'查看镜像'
docker images 仓库名称[:标签]
'删除镜像'
docker rmi 镜像名 
'导出镜像文件'
docker save -o /路径/文件名 镜像名称

在这里插入图片描述

'载入镜像'
方法一:docker load < 文件名
方法二:docker --input 文件名

在这里插入图片描述

'修改标签'
docker tag 文件名:旧标签名 文件名:新标签名

在这里插入图片描述

(2)容器操作
'启动容器'
docker start 镜像ID

'终止容器运行(强制性,非正常退出,STATUS为非零值)'
docker stop 镜像ID

'有则启动,无则下载'
docker run -d 镜像名 /bin/bash -c "命令"

'持续在后台运行'
docker run -d 镜像名 /bin/bash -c "while true;do echo hello;done"
-d:守护进程
-c:使用指令

'查询全部容器'
docker ps -a 

'查询运行的容器'
docker ps 

'删除容器'
docker rm 容器ID

'批量删除容器(运行中无法删除)'
docker ps -a | awk'{print"docker rm"$1}' | bash
'创建容器'
docker create -it 镜像名 分配终端(/bin/bash)
-i:标准输入
-t:分配一个伪终端

'查看所有容器'
docker ps -a 

在这里插入图片描述

'开启容器'
docker start 镜像ID

'进入容器(运行状态)'
docker exec -it 镜像ID /bin/bash

在这里插入图片描述
在这里插入图片描述

'容器导出'
docker export 容器ID > /路径/文件名

在这里插入图片描述

'容器导入(导入之后只会变成镜像)'
cat /路径/文件名 | docker import - 文件名

'如果需要开启容器'
docker run -it 镜像名称 /bin/bash

在这里插入图片描述

(3)私有仓库搭建

私有镜像仓库则是指部署在公司或组织内部,用于自身应用Docker镜像存储、分发的镜像仓库

vim /etc/docker/daemon.json
"insecure-registries":["IP地址:5000"],

在这里插入图片描述

systemctl restart docker
docker create -it registry /bin/bash

docker start 'registry的容器ID'

在这里插入图片描述

docker run -d -p 外端口:内端口 -v 宿主机空间:容器内部挂载点 registry
-p:指定端口
-v:挂载空间使用

'例:docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry'

在这里插入图片描述

'打标签'
docker tag 镜像名:标签 仓库IP地址:5000/名称

'例:docker tag nginx:latest 192.168.90.20:5000/nginx'
'上传'
docker push 

'例:docker push 192.168.90.20:5000/nginx'
获取私有仓库列表
curl -XGET http://IP地址:5000/v2/_catalog

在这里插入图片描述

私有仓库下载
docker pull IP地址:5000/镜像名称

'例:docker pull 192.168.90.20:5000/nginx'

在这里插入图片描述

(4)数据卷

宿主跟容器对接

卷就是将宿主机中的某个目录,mount到容器中
这样,在容器中此目录下的修改,即便容器关闭,数据也会保留下来,供宿主机和其他容器访问。

'创建数据卷'
docker run -v 宿主机目录:容器内部目录 --name 数据卷名 -it 镜像名 /bin/bash 

'例:docker run -v /var/www:/data1 --name web1 -it centos /bin/bash'
在容器内/data1目录创建文件可以查看到,宿主目录/var/www里同样也有
(5)数据卷容器

容器跟容器对接

如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器,数据卷容器其实是一个普通的容器,专门用来提供数据卷供其它容器挂载。

'创建数据卷容器'
docker run --name 数据卷容器名 -v 挂载目录1 -v 挂载目录2 -it 镜像名 /bin/bash

'例:docker run --name web_rq -v /rq1 -v /rq2 -it centos /bin/bash'

在这里插入图片描述

'新容器挂载数据卷容器'
docker run -it --volumes-from 数据卷容器名 --name 新容器名 镜像名 /bin/bash

'例:docker run -it --volumes-from web_rq --name xin_rq centos /bin/bash'

在这里插入图片描述

(6)端口映射
docker run -d -P 随机端口映射
docker run -d -p 指定端口映射

'例:docker run -d -P httpd:centos'
(7)容器互联
docker run -itd -P --name 容器名 镜像名 /bin/bash 
'创建并运行容器取名XX,端口号自动映射'

docker run -itd -P --name web22 --link web11 镜像名 /bin/bash 

--link name:alias 
'--link 容器名:别名'

六、总结

(1)镜像 :
上传push 、下载pull 、打标签tag 、删除rmi 、导出save 、导入load
(2)容器 :
创建create、 进入exec 、运行run 、删除rm 、导出export 、导入import
数据卷-v 、数据卷容器--vloumes-from 、链接容器--link 、暴露端口 随机-P 指定-p
(3)仓库 :
下载registry镜像-->运行容器暴露端口5000-->修改daemon.json文件-->重启docker-->打标签(IP:端口/名称)-->上传/下载
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值