Docker的安装和卸载
# 1. 系统内核的查看
-># uname -r
# 2. 安装前卸载旧版本
-># yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 3. 需要的安装包添加
-># yum install -y yum-utils
# 4. 设置镜像仓库
-># yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo(国外的)
-># yum-config-manager
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里云Docker镜像)
# 更新yum软件依赖
yum makecache fast
# 5. Docker 安装 docker-ce社区版 ee企业版
-># yum install docker-ce docker-ce-cli containerd.io
# 6. 启动Docker
-># systemctl start docker
# 7. Docker启动版本查看
-># docker version
# 8. 验证启动Docker成功
-># docker run hello-world
# 9. 查看下载的镜像
-># docker images
# 卸载Docker
# 1. 卸载依赖
-># yum remove docker-ce docker-ce-cli containerd.io
# 2. 删除资源
-># -rf /var/lib/docker
官网地址:https://docs.docker.com/engine/install/centos/ ,如有不对,依照官网最新版本操作
Docker加速设置(国内服务器)
- 登录阿里云官网找到镜像服务
- 镜像服务中找到镜像加速器,拿到自己的配置文件(每个人都不同)

或者使用中国科学技术大学镜像地址:https://docker.mirrors.ustc.edu.cn
Docker底层原理
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护线程运行在主机上。通Socket从客户端访问!
DockerServer接收到Docker-Client的指令,就会执行这个命令!
Dockers常用命令
帮助命令
docker version
docker info
docker --info
镜像命令
# 1 docker images 查看所有本地的主机上的镜像
work@Gavin:/$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yapi latest b737b2975852 2 months ago 115MB
mysql latest b2500a44757f 2 months ago 524MB
mongo 4 143c893415c0 2 months ago 438MB
srcrs/lunarvim remote bde972b462a4 2 months ago 1.99GB
enwaiax/x-ui latest e6e8975d8c1f 3 months ago 156MB
elasticsearch 8.1.3 b543e34fe3ca 4 months ago 1.2GB
node 12-alpine bb6d28039b8c 4 months ago 91MB
hello-world latest feb5d9fea6a5 11 months ago 13.3kB
# 解释
REPOSITORY 镜像仓库源
TAG 镜像标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小
# 扩展
docker images -a 显示全部镜像
docker images -q 显示全部镜像ID
# 2 docker search 搜索镜像
work@Gavin:/$ docker search mysql
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
# 3 docker pull 下载镜像
TAG = latest 表示最新版本
#下载最新版本
work@Gavin:/$ docker pull mysql
#指定版本
work@Gavin:/$ docker pull mysql:5.7
# 4 docker rmi 删除镜像
work@Gavin:/$ docker rmi -f 容器Id #删除指定的容器
work@Gavin:/$ docker rmi -f 容器Id 容器Id 容器Id #删除指定的多个容器
work@Gavin:/$ docker rmi -f $(docker images -aq) #删除全部的容器
容器命令
有了镜像才能创建容器,Linux,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image
#参数说明
--name="Name" 容器名称 toc1,toc2,用来区分容器
-d 后台运行的方式
-it 使用交互的方式运行,进入容器产看内容
-P 指定容器的端口 —P 8080:8080
-P 主机端口:容器端口 (常用)
-P IP:主机端口:容器端口
-P 容器端口
-p 随机指定端口
#测试,启动并进入容器
work@Gavin:/opt$ docker run -it centos /bin/bash
[root@300b5ec8bb3c /]# ls #容器内部的centos,基础版本,很多命令不完善
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
列出所有运行的容器
#docker ps
# 列出当前正在运行的容器
-a # 列出当前正在运行的容器,带出历史运行过的容器
-n=? # 显示最近创建的容器
-q #列出当前正在运行的容器的编号
# 容器退出
exit #容器停止并退出
ctrl+P+Q # 容器不停止退出
删除容器
docker rm 容器ID # 删除指定的容器,不能删除正在运行的容器
docker rm -f 容器ID # 强制删除容器,即使正在运行
docker rm -f $(docker ps -aq) #删除所有容器
启动和停止容器
docker strat 容器ID
docker restart 容器ID #重启
docker stop 容器ID
docker kill 容器ID
docker对原容器进行修改(添加某些属于自己的内容),提交生成新的镜像
例如:在Ubuntu容器中添加vim指令
注意:使用apt-get update 命令时可能因为网络不通的原因导致无法下载
推荐参数上添加网络指定
sudo docker run -it --name cys --net=host ubuntu /bin/bash
提交
docker commit -m=[提交信息] -a=[作者名] [容器ID] [镜像名]
sudo docker commit -m="vim add cmd ok" -a="cys" 8c3e0ef27cb2 cys/test
常用的其他命令
查看容器中进程信息
# 命令 docker top 容器ID
查看日志
# 命令 docker log -f -t --tail (行数) 容器ID
后台启动容器
# 命令 docker run -d 镜像名
查看镜像的元数据
# 命令 docker inspect 容器ID
进入当前正在运行的容器
# 容器都是后台运行,需要进入容器,修改一些配置
#命令
#方式一
docker exec -it 容器iD 路径 # 进入容器后开启一个新的终端,可以在里面操作(常用)
#方式二 正在执行当前的代码。。。。
docker attach 容器iD # 进入容器正在执行的终端,不去启动新的进程
从容器中拷贝到主机上
# 命令 docker cp 容器ID:容器内路径 目的的主机路径