2 docker安装与启动
2.1 docker架构
# cs 架构软件:客户端,服务端 ,相互通信使用resful
# Docker镜像与容器
-镜像:
-安装了虚拟机---》ios镜像文件(win7,centos)--->装在虚拟机上--》启动起来了
-把docker的镜像【当成】这个ios文件
-docker镜像是一堆文件,必须运行起来,才是容器
-容器:
-一个容器你【当成】,一台虚拟机上装了一个centos的操作系统
# docker软件的安装
# 镜像操作命令
# 容器操作命令(操作系统)
# 连接到容器中:安装软件,删除软件,copy文件
# 纯净的centos7--》启动器容器---》进入--》装python3.6---》反打包成镜像
# dockerfile构建镜像 --》非常小的文件,写几个命令就可以构建出镜像
# 镜像的备份与迁移
# 私有仓库
# 安装 ---》centos7.9为例
# 卸载
# yum remove docker docker-common docker-selinux docker-engine
# rm -rf /var/lib/docker
# 安装
yum update
# 安装依赖,之前装python,这些依赖装过了
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置阿里云的yum源--》官方源---》yum--》官方源找软件安装--》官方源里没有docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装---》docker-ce 社区版 ee专业版收费
yum install docker-ce
# 查看版本
docker -v # 20.10.16 年月日
# 启动docker---》win 双击运行可执行文件
systemctl start docker
# docker命令(要学)
2.2 设置国内源
# 下载镜像---》hub.docker.com--->在国外---》慢---》配置国内镜像
-阿里云
-清华源的
# 不配没关系---》下的慢
# 阿里云云服务器---》很快
3 docker常用命令
# docker 仓库
- 下载镜像--》从某个地方下载--》hub.docker.com---》远程仓库
3.1 Docker的启动与停止
# 启动docker:
systemctl start docker
# 停止docker:
systemctl stop docker
# 重启docker:
systemctl restart docker
# 查看docker状态:
systemctl status docker
# 开机启动:
systemctl enable docker
# 查看docker概要信息
docker info
# 查看docker帮助文档
docker --help
3.2 镜像相关命令
#1 查看,列出所有镜像
docker images # 用它就行
# 2 搜索镜像---》有什么镜像再下---》一般不用--》直接去仓库网站看
docker search centos
# 3 拉取镜像
##### 镜像分标签---》mysql 5.5 /5.6 /5.7/ 8--->标签标志版本
docker pull mysql # 下载最新版---》mysql 8
docker pull mysql:5.7 # 有这个标签才能下载,mysql 5.7
#4 删除镜像 可以空格 放多个id,删除度讴歌
docker rmi 镜像id
docker rmi a091
# 5 删除所有镜像---》面试被问到,如果一次性全部删除镜像
docker rmi `docker images -q`
3.3 容器相关命令
#1 查看所有在运行中的容器
docker ps
# 2 查看所有,运行的,停止的,暂停的
docker ps –a
# 3 查看停止的容器
docker ps -f status=exited
#####4 重点#### 创建并运行容器---》俩命令合二为一--》创建 运行
docker run # 创建并运行,有很多参数
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
--name :为创建的容器命名,一个镜像可能起很多容器,给它命名,不写会自动命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
# 4.1 运行并进入到容器
docker run -it --name= mycentos centos:7
exit
# 4.2 运行不进入到容器
docker run -id --name= mycentos centos:7
返回id号,容器id号,唯一标识
# 4.3 在宿主机,想进入到容器内部操作 exe进
# exec 指定容器执行命令---》利用这个特点-->进入容器
docker exec -it 容器id/名字 /bin/bash
exit退出
# 5 停止与启动容器
docker stop 707be33301f7
docker start 707be33301f7
# 6 文件拷贝--->django项目---》cp进去
# 宿主机---》容器内部
docker cp 需要拷贝的文件或目录 容器名称:容器目录
# 容器内部---》宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录
# 7 目录挂载
# 一旦挂载--》宿主机操作文件和容器操作文件都会影响
# 挂载多个目录,继续-v
docker run -id --name=mycentos3 -v /root/s20:/home/s20 centos:7
# 8 查看容器IP地址
docker inspect 容器名称
docker inspect --format='{{.NetworkSettings.IPAddress}}' f69cf7c4f1cb
# 9 删除容器
docker rm 容器id
# 删除镜像---》必须该镜像运行的容器先删除