一. 安装docker
1.先卸载机器之前的docker相关组件
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装需要的包
yum install -y yum-utils
3.设置国内阿里的镜像仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum的软件包索引
yum makecache fast
5.安装docker相关组件 docke-ce 是社区版本
yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6.启动Docker 引擎并设置开机自启
systemctl start docker
systemctl enable docker
也可以用一条命令
systemctl enable --now docker
7.验证安装是否成功
docker run hello-world
如果一切正常,就是如下图
二. 容器命令
docker run 【可选参数】 image
--name="Name” 容器名字
-d 后台方式运行
-it 使用交互方式进行,进入容器查看内容
-p 主机端口:容器端口 (常用)
-P 随机指定端口
docker ps 命令 列出当前正在运行的容器
-a #列出当前正在运行的的容器+带出历史运行过的容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q |xargs docker rm #删除所有的容器
docker logs 容器id
-tf #显示日志
--tail number #要显示的日志条数
docker inspect 容器id #查看镜像的元数据
docker可以通过 –platform=platformname 命令获取指定系统架构的镜像,具体为:
docker pull --platform=<plartform> <image-name>:<tag>
示列:docker pull --platform=arm64 nginx:latest
进入当前正在运行的容器
docker exec -it 容器id bashshell #进入容器后开启一个新的终端,可以在里面操作
docker attach 容器id #进入容器正在运行的终端,不会启动新的进程
docker stats #查看当前正在运行的容器使用cpu、内存等状态
docker top 容器id #查看容器内部的运行进程
三. commit 镜像 导出与导入
命令和git原理类似
docker commit -m="提交的描述描述信息" -a="作者" 容器id 目标镜像名: [TAG]
打包镜像
docker save -o minio-nginx.tar minio/minio:latest nginx:1.19.2-alpine
载入镜像
docker load -i minio-nginx.tar
结合这两个命令以及 ssh 甚至 pv 的话,利用 Linux 强大的管道
我们可以写一个命令完成从一个机器将镜像迁移到另一个机器,并且带进度条的功能:
docker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load'
四. 具名和匿名挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径::容器内路径 #指定路径挂载
匿名挂载 -v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx
root@# docker volume ls
DRIVER VOLUME NAME
local 8938cbf4bd600fead15f20c3fcd51cd25d8a3ce0fd4815494d1e94efb332c125
具名挂载 -v 卷名:容器内路径
docker run -d -P --name nginx04 -v tang-nginx:/etc/nginx nginx
root@# docker volume ls
DRIVER VOLUME NAME
local 8938cbf4bd600fead15f20c3fcd51cd25d8a3ce0fd4815494d1e94efb332c125
local tang-nginx
五. Dockerfile
Dockerfile的指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留端口配置
CMD # 指定这个容器启动的时候要运行的命令;一个Dockerfile中可以有多个CMD指令,只有最后一个会生效,CMD会被docker run 之后的参数替换
ENTRYPOINT # 类似于CMD指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,
ONBUILD # 当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD 的指令。触发指令
COPY # 类似ADD ,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量!
小结:
参考链接:
docker官网指导 https://docs.docker.com/engine/install/ubuntu/
青年码农博客 https://www.cnblogs.com/nmgwap/p/16331692.html
菜鸟教程 https://www.runoob.com/docker/docker-command-manual.html
Direct_博客 https://blog.csdn.net/D1179869625/article/details/122933562