8.22 docker

docker介绍

 Docker 是⼀个开源的应⽤容器引擎,可以实现虚拟化,完全采⽤“沙 盒”机制,容器之间不会存在任何接口。

Docker 通过 Linux Container(容器)技术将任意类型的应⽤进⾏包 装,变成⼀种轻量级、标准化、可移植、⾃管理的组件。在包装应 ⽤的同时,可连带该应⽤的依赖和环境⼀并进⾏打包,所以可以将 这种“包”移植到任意环境去运⾏,省去兼容性的问题。

安装docker环境

# cat << EOF | tee /etc/modulesload.d/k8s.conf
# modprobe overlay # 加载overlay内核模块
# modprobe br_netfilter # 加载br_netfilter内核模块
# cat << EOF | tee/etc/sysctl.d/k8s.conf
# sysctl --system
# yum install -y yum-utils devicemapper-persistent-data lvm2
# yum-config-manager --add-repo
https://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
# 添加阿⾥云yum源
# yum install docker-ce docker-ce-cli
containerd.io docker-buildx-plugin docker-composeplugin -y --allowerasing
# 安装docker,allowerasing:允许卸载旧版本

配置docker镜像站

#配置变量
#/etc/modules-load/k8s.conf



# 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"
]
}

先启动服务,再看一眼centos

#systemctl start docker.service

#docker images

#第一次创建容器
[root@docker ~]# docker run -i -t --name=c1 centos:latest /bin/bash
[root@effd480552d9 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@effd480552d9 /]# cd /etc/yum.repos.d/
[root@effd480552d9 yum.repos.d]# ls
CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-ContinuousRelease.repo
CentOS-Linux-Debuginfo.repo
CentOS-Linux-Devel.repo
CentOS-Linux-Extras.repo
CentOS-Linux-FastTrack.repo
CentOS-Linux-HighAvailability.repo
CentOS-Linux-Media.repo
CentOS-Linux-Plus.repo
CentOS-Linux-PowerTools.repo
CentOS-Linux-Sources.repo
[root@effd480552d9 yum.repos.d]# cd 
[root@effd480552d9 ~]# ifconfig  
bash: ifconfig: command not found
#配置阿里云yum仓库
[root@effd480552d9 ~]# rm -rf /etc/yum.repos.d/*
#下载镜像
[root@effd480552d9 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --100  2495  100  2495    0     0   4221      0 --:--:-- --:--:-- --:--:--  4228
[root@effd480552d9 ~]# ls /etc/yum.repos.d/
CentOS-Base.repo
#清除缓存
[root@effd480552d9 ~]# yum clean all
Failed to set locale, defaulting to C.UTF-8
0 files removed
#建立缓存
[root@effd480552d9 ~]# yum makecache
Failed to set locale, defaulting to C.UTF-8
CentOS-8.5.2111 - Base - mirrors. 268 kB/s | 4.6 MB     00:17    
CentOS-8.5.2111 - Extras - mirror 1.9 kB/s |  10 kB     00:05    
CentOS-8.5.2111 - AppStream - mir 180 kB/s | 8.4 MB     00:48    
Metadata cache created.
#下载httpd及net-tools
[root@effd480552d9 ~]# yum -y install httpd
[root@effd480552d9 ~]# yum -y install net-tools
[root@effd480552d9 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 11955  bytes 17197230 (16.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8428  bytes 462523 (451.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#进程
[root@effd480552d9 ~]# ps
   PID TTY          TIME CMD
     1 pts/0    00:00:00 bash
    74 pts/0    00:00:00 ps
#查时间
[root@effd480552d9 ~]# uptime
 06:52:13 up  4:13,  0 users,  load average: 0.01, 0.03, 0.05
#当前目录
[root@effd480552d9 ~]# pwd
/root
#版本
[root@effd480552d9 ~]# cat /etc/redhat-release 
CentOS Linux release 8.4.2105
#写入内容并访问测试
[root@effd480552d9 ~]# echo "docker_httpd_derver" > /var/www/html/index.html
#启动失败
[root@effd480552d9 ~]# 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@effd480552d9 ~]# 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
#访问,在宿主机上访问也可以,但无法在物理机上访问,也无法ping到这个主机
[root@effd480552d9 ~]# curl localhost
docker_httpd_derver
[root@effd480552d9 ~]# curl http://localhost:80
docker_httpd_derver
#退出
[root@effd480552d9 ~]# exit
exit
#如果没有指令正在执行,容器就会停止
#重新启动容器
docker start c1
c1
#将c1的终端附加到当前的终端
docker attach c1
#此时httpd服务又停了,如果希望退出之后服务继续运行,
#crtl+ p + q 

--查看状态

#查看sock套接字
ls -l /var/run/docker.sock
#要允许远程连接,需要有一个服务,使用端口体现
netstat -lnput|grep 2375

--设置允许远程管理

停用docker.service服务

#修改/usr/lib/systemd/system/docker.service
#删除13行dockerd之后的内容
[root@docker ~]# vim /usr/lib/systemd/system/docker.service 
#修改daemon.json文件
[root@docker ~]# vim /etc/docker/daemon.json
......
        "hosts":[
                "tcp://0.0.0.0:2375",
                "unix:///var/run/docker.sock"
         ]
}
#加载daemon.json
[root@docker ~]# systemctl daemon-reload 
#启动服务
[root@docker ~]# systemctl start docker.service
#查看状态
[root@docker ~]# netstat -lnput|grep 2375
tcp6       0      0 :::2375                 :::*                    LISTEN      7287/dockerd
#此时,通过 ls -lh /var/run/可以看出,docker.sock时间已经发生变化
#远程管理
[root@docker ~]# docker -H 192.168.1.20 images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值