Docker
- Docker
- 笔记连接
- 相关概念如下
- 安装运行命令
- 命令
- 镜像
- 容器
- run细节
- 根据容器制作新镜像
- 对正在运行容器的修改,保存为镜像
- 保存成文件
- 加载文件成镜像
- 分享镜像
- 登录
- 修改名字 docker tag
- 推送镜像
- 目录挂载
- 卷映射
- 创建卷
- 容器之间直接访问
- 查看容器细节
- 容器内部互相访问
- 自定义网络
- 创建自定义网络
- 启动容器
- 容器名访问
- Redis主从集群
Docker
笔记连接
https://www.yuque.com/leifengyang/oncloud/
相关概念如下
Docker_Host:
安装Docker的主机
Docker Daemon:
运行在Docker主机上的Docker后台进程
Client:
操作Docker主机的客户端(命令行、UI等)
Registry:
镜像仓库
Docker Hub
Images:
镜像,带环境打包好的程序,可以直接启动运行
Containers:
容器,由镜像启动起来正在运行中的程序
进入正在运行的容器实例,使用的命令行
Client: 操作Docker主机的客户端(命令行、UI等)
安装运行命令
移除以前docker相关包
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
配置源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
#以下是在安装k8s的时候使用
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
启动
systemctl enable docker --now
配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
命令
镜像
搜索镜像: docker search xxx:ver / docker search imageId
下载镜像: docker pull xxx
显示下载镜像 docker images
docker rmi xxx:ver / docker rmi imageId
容器
启动一个镜像 docker run imageName
查看正在运行的容器 docker ps
查看所有的容器 docker ps -a
docker stop
运行一个停止的容器 或者 运行一个镜像 docker start imageId/ docker start ConId
docker restart
查看容器资源运行情况 docker stats
查看容器运行日志 docker logs
docker exec
删除容器 docker rm runConId
强制删除容器 docker rm -f runConId
显示所有容器ID docker ps -aq
删除所有容器 docker rm -f $(docker ps -aq)
run细节
后台启动 一个nginx,给启动的容器命名:mynginx docker run -d --name -p 80:80 mynginx nginx
以交互的方式运行
docker -exec -it mynginx /bin/bash
根据容器制作新镜像
对正在运行容器的修改,保存为镜像
docker commit -m "xxx" conId imageId:inputVer
保存成文件
docker save -o newImage1Name imageId
这里可以保存成为tar格式的包
加载文件成镜像
docker load -i xxx.tar // 这个tar是上一步制作的tar包格式镜像
分享镜像
docker login
docker tag
docker push
登录
修改名字 docker tag
docker tag oldImageName newImageName
推送镜像
docker push xxxxx
目录挂载
关键字 -v 用来挂载
会导致物理机文件覆盖 容器内文件
卷映射
-v 卷名:/etc/nginx
将容器内部路径映射到卷名
`` docker将卷放到了 /var/lib/docker/volumes/
查看卷的默认存放位置在哪里
docker volume ls
创建卷
docker volume create haha
在默认存储位置创建卷
容器之间直接访问
查看网络 ip a
可以看到各个网卡
每启动一个容器.相当于直接加入了 docker0 这个网络
查看容器细节
docker inspect containerId/ContainerName
可以查看到 容器使用的I P
容器内部互相访问
curl http://172.17.0.2:80/index
自定义网络
创建自定义网络
docker network create mynet
docker network ls
启动容器
docker run -d -p 80:80 app1 --network mynet nginx
容器名访问
curl http://172.17.0.3:80
Redis主从集群
略…这里使用的是 bitnami 的镜像