1.docker容器环境安装

容器常用选项

一、容器介绍

1、容器是什么?

轻量级虚拟化技术

应用场景:

1、快速构建业务环境

2、便于业务迁移,避免兼容性问题

2、与传统虚拟化区别

创建速度快, 秒级

无虚拟硬件

共享物理机内核、IO速度快

3、容器的三要素

容器、镜像、仓库

4、容器核心技术

  • namespace技术 命名空间

    实现资源(文件目录、用户、端口、进程)隔离

  • cgroup技术

    实现容器的资源限制(cpu、内存)

5、容器管理工具/软件

  • docker
    docker-ce、docker-ee
  • podman
  • containerd

二、安装docker

1、配置docker软件仓库

bash 复制代码
[root@martin-host ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@martin-host ~]# cat /etc/yum.repos.d/docker-ce.repo
[docker-ce]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7.9/x86_64/stable/
enabled=1
gpgcheck=0

2、安装docker, 启动docker服务

bash 复制代码
[root@martin-host ~]# yum install -y docker-ce 

[root@martin-host ~]# rpm -q docker-ce
docker-ce-26.1.4-1.el7.x86_64

[root@martin-host ~]# systemctl enable --now docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@martin-host ~]# 

3、配置国内docker镜像仓库

bash 复制代码
[root@martin-host ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://rywdmoco.mirror.aliyuncs.com"]
}
[root@martin-host ~]# 
[root@martin-host ~]# systemctl restart docker

4、主机网络变化

bash 复制代码
// docker0虚拟网卡,默认作为所有容器的网关使用
[root@martin-host ~]# ip addr show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:81:00:b2:4b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

// 路由转发
[root@martin-host ~]# cat /proc/sys/net/ipv4/ip_forward
1

// docker网段的SNAT规则
[root@martin-host ~]# iptables -t nat -nL 
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  172.17.0.0/16        0.0.0.0/0           

Chain DOCKER (2 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0       

三、镜像基础操作

1、查看镜像

bash 复制代码
[root@martin-host ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    dabbfbe0c57b   2 years ago   144MB
nginx        1.18      c2c45d506085   3 years ago   133MB

2、搜索镜像

bash 复制代码
[root@martin-host ~]# docker search 关键字

3、下载镜像

bash 复制代码
[root@martin-host ~]# docker pull 镜像名称:标记

4、导入镜像

bash 复制代码
[root@martin-host ~]# docker load -i centos7.tar 
174f56854903: Loading layer [==================================================>]  211.7MB/211.7MB
Loaded image: centos:7

5、导出镜像

bash 复制代码
[root@martin-host ~]# docker save -o tomcat.tar tomcat:latest 
相关推荐
昌sit!5 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林6 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
A ?Charis8 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision8 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge8 小时前
Docker篇(Docker Compose)
运维·docker·容器
北漂IT民工_程序员_ZG9 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
梦魇梦狸º12 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
鬼才血脉12 小时前
docker+mysql配置
mysql·adb·docker
詹姆斯爱研究Java12 小时前
Docker 的基本概念和优势
docker
南猿北者14 小时前
docker镜像仓库常用命令
运维·docker·容器