文章目录
Docker安装和Docker镜像和容器基本的基本操作
Docker安装
关闭防火墙
systemctl stop firewalld.service
setenforce 0
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker-CE 社区版并设置为开机自动启动
yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service
查看 docker 版本信息
docker version
网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #开启路由转发
sysctl -p
systemctl restart network
systemctl restart docker
为什么要开启路由转发功能?
开启路由转发 是让docker0能根据虚拟机ip为自己所有的docker容器分配虚拟ip
Docker-server端配置文件建议配置
#在daemon. json文件中配置
{
"graph":"/data/docker", #数据目录,数据存储位置
"storage-driver":"overlay2", #存储引擎,docker1.18以上版本默认使用overlay2存储引擎。早期的适合存储引擎使用的aufs
"insecure-registries":["registry.access.redhat.com","quary.io"], #私有仓库
#registry-mirrors 以下添加
"bip":"172.184.70.1/24", #docker网络
"exec-opts":["native.cgroupdriver-systemd"], #启动时的额外参数,(是一种挂在驱动,k8s使用)
"live-restore":true #当docker容器引擎挂掉的时候,使用docker跑起来的容器还能继续运行
}
Doceker基本命令
查看镜像——docker images
#查看下载到本地的所有镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 9 days ago 133MB
--------------------------------------------------------------------------------
REPOSITORY:镜像属于的仓库;
TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像,经过md5方式加密过;
CREATED:镜像创建时间;
VIRTUAL SIZE:镜像大小;
--------------------------------------------------------------------------------
查看所有状态容器——docker ps -a
docker ps -a #-a 选项可以显示所有的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58a0aad139d3 nginx "/docker-entrypoint.…" 2 hours ago Exited (0) 21 minutes ago dazzling_wescoff
##字段说明
CONTAINER ID:容器的ID号
IMAGE:加载的镜像
COMMAND :运行的程序
CREATED :创建时间
STATUS:当前的状态
PORTS:端口映射
NAMES:名称
docker——run指令
docker run hello-world
run指令 运行
- 检测本地有没有该镜像(没有的话直接到docker hub上下载)
- create(将镜像创建为容器)+ start 将创建好的容器运行起来
工作流程
- docker client客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的) restful api典型的c/s架构
- 由docker服务端的守护进程从docker hub 上下载了镜像(Ps:服务端会先检查本地系统是否有这个镜像)
- 服务端创建了一个新的容器,然后从拉去的这个镜像启动了一个容器,容器执行了脚本/可执行程序让我们可以查看/使用(client)