Docker
1. Docker简介
1.1 什么是docker
1.2 传统虚拟化与容器技术对比
1.3 docker容器的优势
- 对于开发人员:Build once、Run anywhere。
- 对于运维人员:Configure once、Run anything。
1.4 容器是如何工作的
2. 容器的搭建
2.1 安装
== 红帽8自带的docker容器==
安装docker
[root@server1 yum.repos.d]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# cat docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable
gpgcheck=0
[root@server1 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@server1 yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo ##阿里云都有参考
[root@server1 yum.repos.d]# vim CentOS-Base.repo ##修改一下仓库文件
:%s/$releasever/7/g
[root@server1 yum.repos.d]# yum install docker-ce -y
##安装成功
安装docker-ce(ce是社区版)发现缺少各种依赖,可以直接在阿里云搜索对应的依赖。发现都是centos里面的包,直接配置一个仓库。
所有依赖都解决了
2.2 启动
[root@server1 ~]# systemctl enable --now docker ##开机启动
[root@server1 ~]# docker info ##出现下面的警告错误
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
[root@server1 ~]# sysctl -a | grep bridge-nf-call-iptables
net.bridge.bridge-nf-call-iptables = 0 ##需要设置
[root@server1 ~]# cd /etc/sysctl.d/
[root@server1 sysctl.d]# vim docker.conf
[root@server1 sysctl.d]# cat docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
[root@server1 sysctl.d]# sysctl --system
2.3 测试docker
##通过网络拉取容器中的项目
[root@server1 ~]# docker search yakexi007 ##查看容器中的项目
[root@server1 ~]# docker images ##查看容器里的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
game2048 latest 19299002fdbe 4 years ago 55.5MB
mario latest 9a35a9e43e8c 5 years ago 198MB
[root@server1 ~]# docker history
game2048:latest mario:latest
[root@server1 ~]# docker history game2048:latest ##查看端口进行端口映射
[root@server1 ~]# docker run -d --name demo -p 80:80 game2048 ##后面的是docker端口80,前面的是本机80,将docker端口映射到本机。 game2048是镜像名称
[root@server1 ~]# docker ps 查看活着的docker进程
[root@server1 ~]# docker ps -a 查看所有的docker进程
##现在可以直接访问网址172.25.13.1就可以
[root@server1 ~]# docker rm -f demo
demo
##直接本地下载的容器项目
[root@server1 ~]# docker load -i mario.tar ##加载到容器
[root@server1 ~]# docker run -d --name demo -p 80:8080 mario
网络拉取
会有一个专门的容器ip
删除demo
本地镜像