遵义做网站哪家好哪家好网站定位的核心意义
docker
docker架构

docker核心概念
安装docker
配置docker环境
[root@docker ~]# cat <<EOF | tee /etc/modules-load.d/k8s.conf
 > overlay
 > br_netfilter
 > EOF
 overlay
 br_netfilter
  
[root@docker ~]# modprobe overlay     //加载overlay内核模块
 [root@docker ~]# modprobe br_netfilter    //加载br_netfilter内核模块
 [root@docker ~]# cat /etc/modules-load.d/k8s.conf
 overlay
 br_netfilter
 [root@docker ~]# cat << EOF | tee /etc/sysctl.d/k8s.conf
 > net.bridge.bridge-nf-call-iptables = 1
 > net.bridge.bridge-nf-call-ip6tables = 1
 > net.ipv4.ip_forward = 1
 > EOF
 net.bridge.bridge-nf-call-iptables = 1
 net.bridge.bridge-nf-call-ip6tables = 1
 net.ipv4.ip_forward = 1
 [root@docker ~]# sysctl --system
  
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
  
添加阿里云yum源:配置一个仓库
[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@docker ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
启动关闭服务:
[root@docker ~]# systemctl start|stop|restart docker.service
查看镜像:
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
配置docker镜像站:
[root@docker ~]# vim /etc/docker/daemon.json
{
     "registry-mirrors": [
         "https://do.nark.eu.org",
         "https://dc.j8.work",
         "https://docker.m.daocloud.io",
         "https://dockerproxy.com",
         "https://docker.mirrors.ustc.edu.cn",
         "https://docker.nju.edu.cn"
     ]
 }
[root@docker ~]# systemctl restart docker
下载镜像:
[root@docker ~]# docker pull centos
 Using default tag: latest
 latest: Pulling from library/centos
 a1d0c7532777: Pull complete 
 Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
 Status: Downloaded newer image for centos:latest
 docker.io/library/centos:latest
[root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 centos       latest    5d0da3dc9764   2 years ago   231MB
  
运行容器
[root@docker ~]# docker run -i -t --name=c0 centos:latest /bin/bash
 [root@b9d46da21fe3 /]#
在容器中获取阿里云镜像:
[root@b9d46da21fe3 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
 [root@b9d46da21fe3 ~]# yum clean all
 [root@b9d46da21fe3 ~]# yum makecache
 安装http:
[root@b9d46da21fe3 ~]# yum -y install httpd
[root@b9d46da21fe3 ~]# yum -y install net-tools
修改index文件:
[root@b9d46da21fe3 ~]# echo 'docker_httpd_derver' > /var/www/html/index.html
使用systemctl无法启动httpd,因为容器也就200MB,使用httpd -k start 来启动
[root@b9d46da21fe3 ~]# systemctl start httpd
 System has not been booted with systemd as init system (PID 1). Can't operate.
 Failed to connect to bus: Host is down
 [root@b9d46da21fe3 ~]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
访问:
[root@b9d46da21fe3 ~]# curl localhost
 docker_httpd_derver
 只要还没退出容器(退出就没有服务了),宿主机上也可以访问,但在物理机上不能访问
[root@docker ~]# curl http://172.17.0.2
 docker_httpd_derver
 退出容器:
[root@b9d46da21fe3 ~]# exit   
 exit
再次启动:
 [root@docker ~]# docker start c0
 c0
 接入到管理界面,将容器的命令行附加到当前的终端,把c0挂载到当前终端上
 [root@docker ~]# docker attach c0
 [root@b9d46da21fe3 /]# 
总结:
第一次创建容器
docker run -it --name=c0 centos:latest /bin/bash
配置阿里云的yum仓库
yum clean all && yum makecache
yum -y install httpd
echo 'docker_httpd_server' > /var/www/html/index.html
不能用systemctl start httpd启动服务,因为容器也就200MB
使用 httpd -k start 来启动
在宿主机上访问可以,无法在物理机上访问,也无法ping到这个主机
如果没有指令正在执行,容器就会停止 exit
重新启动容器 docker start c0
将c0的终端附加到当前的终端 docker attach c0
此时,httpd服务又停了
期望退出,服务继续运行,一致按住ctrl,先按p,再按q
  
docker远程连接
docker可以远程连接,但必须要有sock文件
方法
1.查看状态
查看sock套接字:ls -lh /var/run/docker.sock
要允许远程连接,需要有一个服务,使用端口体现: netstat -lnput | grep 2375
2.设置允许远程管理
停用docker服务
修改/usr/lib/systemd/system/docker.service
修改daemon.json
3.加载daemon.json
systemctl daemon-reload
4.启动服务
systemctl start docker.service
5.查看状态
查看sock套接字:ls -lh /var/run/docker.sock
要允许远程连接,需要有一个服务,使用端口体现: netstat -lnput | grep 2375
6.远程连接
docker -Hip地址 -it -name...
具体步骤
docker的套接字文件,即使docker是关闭的,sock也在,但这个套接字文件不正确,我们需要修改一些配置
[root@docker ~]# ls -lh /var/run/
srw-rw----.  1 root   docker    0 8月  22 11:22 docker.sock
 [root@docker ~]# vim /etc/docker/daemon.json

 [root@docker ~]# systemctl start docker
 [root@docker ~]# netstat -lnput | grep 2375
[root@docker ~]# ls -lh /var/run/
srw-rw----. 1 root docker 0 8月 22 11:22 docker.sock
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
把13行dockerd后面的内容删掉:

 [root@docker ~]# systemctl stop docker
 Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
 Warning: Stopping docker.service, but it can still be activated by:
   docker.socket
启动失败,需要加载daemon.json:
 [root@docker ~]# systemctl start docker.service   
 Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
 Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
加载daemon.json:
[root@docker ~]# systemctl daemon-reload
 [root@docker ~]# systemctl start docker.service 
 [root@docker ~]# netstat -lnput | grep 2375
 tcp6       0      0 :::2375                 :::*                    LISTEN      6831/dockerd        
 [root@docker ~]# ls -lh /var/run/
 srw-rw----.  1 root   docker    0 8月  22 16:10 docker.sock
远程连接:
[root@docker ~]# docker -H 192.168.118.55 images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 centos       latest    5d0da3dc9764   2 years ago   231MB
  
