安装docker
装个依赖
yum -y install gcc gcc-c++
卸载旧版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
如果这是自添加 Docker 镜像仓库以来您首次刷新软件包索引,系统将提示您接受 GPG 密钥,并且将显示此密钥的指纹。验证指纹是否正确,并且在正确的情况下接受此密钥。指纹应匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35。
###########################################################
1、安装指定版本:
yum list docker-ce.x86_64 --showduplicates | sort -r #从高到低列出Docker-ce的版本
这里我下的是最新的版本
yum -y install docker-ce-19.03.9 docker-ce-cli-18.09.9 containerd.io
也可以yum -y install docker-ce
systemctl start docker 开启docker
查看docker版本,到这里docker安装就结束了
这里要插个东西
这是做了个镜像拉取加速,我已经上传过这个资源了,自己去找一下
1、docker 基本管理
1查找镜像
docker search name
2下载镜像(也有说是拉取镜像)
docker pull name:tag (tag就是版本)
3列出本地镜像
docker images
4删除镜像
docker rmi imagesname
5查看镜像的源信息
docker inspect imagesname
6构建镜像
docker commit
docker build 和 dockerfile
举个例子
docker run -i -t ubuntu /bin/bash
run表示启动一个容器
-i表示采用互交方式
-t表示给当前用户分配一个虚拟终端
ubuntu为镜像名称
/bin/bash是要执行的命令
exit返回到docker管理界面
docker ps -a可以看见ubuntu容器,上面有容器id,镜像名字,时间,操作命令等等。。
docker commit c539f5dfe0ce(刚刚那个容器id) demo/webserver(为新的镜像名称)
docker images就可以看见了
7镜像‘名称/标签’管理
docker tag httpd local/httpd(把httpd标识为local仓库的httpd, docker images就看见了,有2个镜像,但是共用的一个储存科技,只是名称不同而已)
docker tag httpd local/httpd:v2.1(这里就是把标签改了)
这里tag 后面的httpd也可以用d3a13ec4a0f1这样的镜像id来代替 一样的
2.docker容器管理
1创建容器
docker create 容器 (这种创建不会启动容器)
创建最新的容器
docker run (会直接启动容器)
-t 分配虚拟终端
-d 后台运行
-i互交模式
这里已经进入到了虚拟终端,并且是root用户
后台模式启动运行容器(下面这段码就是容器的id~)
2查看容器
docker ps 这是查看运行的容器
docker ps -a 这是查看所有的容器
status这里 exited表示退出已经停止了容器,up是还是运行状态
如果容器太多可以进行过滤,如(可能由于ubuntu跟centos的原因,也不支持这个,还有下面那个2个也是没支持)
查看这个容器创建之前的容器
查看这个容器创建之后的容器
3启动容器
重启容器
停止容器
强制杀死容器
删除容器(删除之前先给他停掉,不然不让删)
3网络管理
1网络原理
这里的docker0是负责宿主机跟容器相连的,相当于一个虚拟的网卡,查看docker0详细信息是这样的
这里如果运行了容器,后面的interfaces就会有
2网络模式
首先docker支持4种网络模式,使用–network来选定,分别是host,container,none,bridge。
(1)host模式
首先,docker容器会有自己的独立的网络空间,如果是用的host模式,不会虚拟出自己的网卡,ip地址,会与宿主机公用一个网络,使用的宿主机的ip和端口。
查看一下信息,正是主机的网络信息
(2)container模式
这就是把新创建的容器,跟一个已经创建的容器进行一个共享,使得他们2个容器可以通过共享的网卡设备通讯,除了网卡,其他的都还是隔离的
(3)none模式
docker容器拥有自己的network空间,但是不为docker容器进行任何的网络配置,就是说,这个docker容器,没有网卡,IP地址,路由信息等,需要我们自己为docker容器添加网卡,配置ip等
(4)bridge桥接模式
这个是docker的默认模式,会为每一个容器分配network命名空间,设置ip地址等,并将一个主机上的docker容器连接到一个虚拟网桥上。
3docker容器的互连
首先,基于之前的centos镜像,运行两个容器
这里查看一下两个容器的IP地址
从上面的输出结果可知,这2个容器是可以与对方通讯的
4容器与外部网络的互连
首先是容器访问外网
这里呢是可以直接访问外网的
其次是外网访问容器,容器本身是不能直接被访问的,需要做一个端口映射,宿主的端口跟容器的端口互相映射,进行一个被访问的功能,下面运行一个httpd来举例子(首先你宿主机跟容器的80端口没有被占用)
再来访问你的宿主机的80端口看效果