1 docker 组件介绍
# Docker:容器技术 ,资源隔离
dotCloud go写的软件
Docker的基础是 Linux 容器(LXC)等技术
LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单
# 优势:
举例说明:
开发阶段:win上开发的 python3.8 第三方模块
上线阶段:linux python3.8 第三方模块 不同平台有差异
使用docker统一开发和部署环境
只要部署项目运行器一个容器即可(python+django+drf+uwsgi+代码)
java容器:(jdk+tomcat+java代码)
# docker cs架构软件
服务器端,客户端
客户端cli
客户端和服务端交互使用resfulapi
客户端:docker ps----》http请求,符合resful规范----》服务端执行
# 架构
客户端cli
服务端 server
Images:镜像
containers:容器 (想象成一个操作系统运行了一个软件)
networks:网络
Volumes:数据卷,文件
Registry:远程仓库
# 镜像和容器
镜像是从远程拉去下来的文件
容器是镜像运行后得到的,一个镜像可以运行多个容器
面向对象中得 类:镜像 对象:容器
容器:把容器当做一个操作系统上运行了软件
运行了redis容器:一个操作系统运行了redis
2 docker安装启动
# docker 可以安装在各个操作系统之上
centos 7.5
win10 以上可以
mac
最好,在虚拟机的centos上安装
# 版本介绍
Docker-CE指Docker社区版,由社区维护和提供技术支持,为免费版本,适合个人开发人员和小团队使用。
Docker-EE指Docker企业版,为收费版本,由售后团队和技术团队提供技术支持,专为企业开发和IT团队而设计
# 卸载:
停止服务: systemctl stop docker
yum list installed | grep docker
yum remove docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
rm -rf /var/lib/docker
# 安装
安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
把yum源设置为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
sudo yum install docker-ce
查看docker版本
docker -v # Docker version 20.10.22, build 3a2c30b
# windows和mac :https://get.daocloud.io/#install-docker-for-mac-windows
# 配置国内镜像站:仓库在国外,下载镜像很慢,配置国内镜像站
阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
mkdir /etc/docker
vim /etc/docker/daemon.json
写入
{
"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
重启
sudo systemctl daemon-reload
sudo systemctl restart docker
# docker 命令
# 启动docker:
systemctl start docker
#停止docker:
systemctl stop docker
#重启docker:
systemctl restart docker
#查看docker状态:
systemctl status docker
#开机启动:
systemctl enable docker
#查看docker概要信息
docker info # docker客户端,服务端的概要信息
3 docker镜像操作
# 搜索镜像
docker search 镜像名字
# 从远程仓库拉去的文件
docker pull centos:centos7.9.2009
docker pull python:3.8-slim
docke pull redis # 最新版
docker pull mysql:5.7
# 查看本地镜像
docker images
# 删除镜像
docker rmi 镜像id
# 一次性删除所有镜像
docker rmi `docker images -q`
# 一次性删除所有容器
docker rm `docker ps -aq`
# 了解
自己制作了一个镜像,想传到自己的dockerhub仓库里
把本地的镜像打个标签
docker tag 镜像id 你的dockerhub用户名/xxxx
docker login # 输入用户名密码
docker push 你的dockerhub用户名/xxxx
在你的仓库你就能看到了
# 镜像分层:
https://blog.csdn.net/qq_40124555/article/details/125137800
# 如何获取镜像:
docker pull 拉取
压缩包还原
容器反打包成镜像
dockerfile构建
4 docker容器操作
# 1 基于镜像运行成容器
# 创建容器,运行容器
# -it和-id区别 :it进入到容器内部 ,id以守护进程运行容器,不进入
# --name=名字 不写会随机
# centos:7 镜像的名字和tag
# -p 3307:3306 把宿主机的3307端口映射到容器的3306端口,以后访问宿主机的3307,就等于访问容器的3306
# -v /root/lqz:/home 把宿主机的/root/lqz映射到容器的 /home ,以后再宿主机或容器内修改这个文件夹,都会相互影响
# 在容器内部,退出来:exit ---》只要退出,容器也退出了
-docker run -it --name=centos centos:7 # 基于centos:7镜像 创建并运行容器,进入到容器中,名字为centos
# 2 查看正在运行的容器
docker ps
# 3 查看所有容器
docker ps -a
# 4 在容器上执行命令
docker exec 容器id ls
docker exec 12a6a0281168 ls
docker exec -it 12a6a0281168 /bin/bash
# 5 停止容器
docker stop 容器id
# 6 运行容器
docker start 容器id
# 7 删除
docker rm 容器id # 正在运行的容器不能删
# 8 文件拷贝
把宿主机文件cp到容器内部
docker cp 宿主机文件 容器id:容器路径
把容器内部文件cp到宿主机
docker cp 容器id:路径/文件 /root/ss.py
# 9 查看容器信息
docker inspect 容器id
docker inspect --format='{{.NetworkSettings.IPAddress}} 容器id # 查看ip地址
标签:容器,入门,centos,介绍,id,镜像,docker,Docker
From: https://www.cnblogs.com/dy12138/p/16993100.html