一 、docker概述

1、docker是什么

  • docker是一种轻量级的“虚拟机”
  • 在Linux容器里运行应用的开源工具

2、docker与虚拟机的区别

在这里插入图片描述

3、docker是使用场景

  • 打包应用程序简单化部署
  • 可脱离底层硬件任意迁移
  • 例如:服务器从腾讯云迁移到阿里云

二、docker的核心概念以及安装方式

1、docker核心概念

  • 镜像
    • 一个面向docker容器引擎的只读模板
  • 容器
    • 从镜像创建的运行实例
  • 仓库
    • 集中保存镜像的地方

2、centos安装docker的两种方式

  • 使用CURL获得docker的安装脚本进行安装
  • 使用YUM仓库来安装docker(推荐使用)

三、安装docker及基本操作

1、安装最新版本docker依赖版本环境

yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

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

2、安装docker并设置为开机自启动并检查docker版本

yum -y install docker-ce

systemctl start docker
systemctl enable docker

docker version

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

3、配置路由分发

vim /etc/syscl.conf
net.ipv4.ip_forward=1
sysctl -p

4、配置阿里云的镜像加速器

这里配置镜像加速器的原因是因为docker的官网是国外的,所以下载的时候会出现中断或者下载速度很慢的,因此我们需要使用阿里云的镜像加速
在这里插入图片描述
手机扫码直接登录
在这里插入图片描述
登陆后选择控制台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

systemctl daemon-reload
systemctl restart docker

这样就可以获得阿里云的镜像加速了
在这里插入图片描述

四、docker基本命令

搜索镜像

docker search 镜像名
在这里插入图片描述

获取镜像

docker pull 仓库名称[:标签]
在这里插入图片描述

查看镜像

docker images 仓库名称[:标签]
docker inspect 镜像ID
在这里插入图片描述
在这里插入图片描述

删除镜像

docker rmi 镜像名

在这里插入图片描述

将镜像存储在本地,以及载入镜像

cd /opt
docker save -o mysql mysql:latest

docker load < mysql
或
docker --input mysql

在这里插入图片描述

添加镜像标签

docker tag 原镜像名:标签 新镜像名:标签
在这里插入图片描述

删除镜像

docker rmi 镜像名[:tag]
在这里插入图片描述

创建私有仓库

docker run registry

vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.241.20:5000"],						##添加
"registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com]
}
systemctl restart docker.service
docker create -it registry /bin/bash
docker ps -a

在这里插入图片描述

容器创建及查看

docker create -it nginx:latest /bin/bash
docker ps -a

在这里插入图片描述
这里提示下:STATUS状态 up是正在运行的,Exited (0)是正常停止的容器、Exited (非0)异常停止的容器

启动容器

docker start 容器id
在这里插入图片描述

启动容器并执行命令

docker run centos7 /bin/bash -c ls
在这里插入图片描述

持续在后台执行

docker run -d centos7 /bin/bash -c “while true;do echo hello;done”

进入容器

docker exec -it 容器名 /bin/bash

容器导入和导出

容器导出:dockerexport 容器id >名称
容器导入:cat 名称 | docker import -容器名称:[tag]

删除容器及批量删除

docker rm 容器id
docker ps -a | awk ‘{print "docker rm "$1}’| bash

私有仓库的镜像上传及下载

docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
更改标记为192.168.241.20:5000/nginx
docker tag nginx:latest 192.168.241.20:5000/nginx
上传
docker push 192.168.241.20:5000/nginx
获取私有仓库列表
curl-XGET http://192.168.241.20:5000/v2/_catalog
显示
("“repositories”:["“nginx”")
这样就标识上传镜像至私有仓库就成功了
测试私有仓库下载
docker pull 192.168.241.20:5000/nginx
在这里插入图片描述
在这里插入图片描述

数据卷

docker pull centos:7
宿主机目录/opt/test挂载容器种的/data1
docker run -v /opt/test:/data1 --name test1 -it centos:7 /bin/bash
cd /data1
touch test1
返回宿主机查看
ls /opt/test
这里的挂载目录如果不存在的话,会自动创建

在这里插入图片描述

数据卷容器

#数据卷容器
docker run --name web10-v /data1 -v /data2 -it centos:7 /bin/bash
#新容器挂载数据卷容器web10
docker run -it --volumes-from web10 --name db1 centos:7 /bin/bash
在这里插入图片描述

在这里插入图片描述
数据卷与数据卷容器的区别:数据卷是挂载在宿主机上的,而数据卷容器是通过--volumes-from实现容器与容器之间的挂载

端口映射

docker run -d -P httpd
docker run -d -p 1234:80 httpd
-P:是随机指定端口
-p:是指定端口
在这里插入图片描述
在这里插入图片描述

容器互联

docker run -itd -P --name web11 centos:7 /bin/bash #创建并运行容器取名web11,端口号自动映射
docker run -itd -P --name web22 --link web11:web00 centos:7 /bin/bash
创建并运行容器取名web22,链接到web11和其通信进web22容器 ping web11
–link name:alias
在这里插入图片描述
这里有想过为什么可以ping通web11??
在这里插入图片描述
这里因为web11的地址映射到了web22的/etc/hosts里,所以这里才可以ping通

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐