docker从入门到入土

news/2024/12/5 19:02:18/

卸载旧版本

sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine

安装 Docker 引擎、containerd 和 Docker Compose

 yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动

 systemctl start docker

查看状态

systemctl status docker

配置镜像加速器
添加地址一锅端↓

    vi /etc/docker/daemon.json {  "registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]}sudo systemctl daemon-reloadsudo systemctl restart docker

常用命令
运行 以nginx 为例
docker run -d 创建并运行一个容器,-d是在后台运行
–name 给容器起名,唯一
-p 18000:80 设置端口映射,docker容器里的3306映射到13306宿主机端口
-e KEY=VALUE 环境变量
nginx 指定运行的镜像名字 Repository:tag tag是版本号,没有的默认最新

docker pull 远程拉取镜像到本地

docker pull nginx
docker images 查看本地镜像
docker rmi xxx 删除本地镜像(需要先删除进程!)
 docker rmi nginx
docker build 打包镜像docker build -t 镜像名:1.0 dockerfile目录-t是tag 给镜像起名,不指定时默认为latestdockerfile目录 指定dockerfile所在的目录,当前目录就指定为“.”docker save 保存镜像到本地
docker save -o nginx.tar nginx:latest
docker load 加载本地镜像
 docker load -i nginx.tar 
docker push 推送镜像仓库
docker stop 停止容器进程
docker start 启动容器进程
docker ps 查看进程简化输出内容docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"docker ps -a all,展示所有容器docker rm 删除进程
docker rm nginx
docker exec 进入进程
docker logs nginx 查看容器进程日志-f follow 持续跟踪-n 200 后200行docker exec进入容器内部docker exec -it nginx bash    -it是可交互终端,进入bash或者不用进入bashdocker exec -it nginx nginx -s start docker exec -it mysql mysql -uroot -p

数据卷挂载
命令

docker volume [--help]
docker run -v 数据卷:容器内目录 创建容器并将数据卷挂载到/var/lib/docker/volumes/。如果容器已经创建,无法挂载;没有的目录会自动创建docker run -d --name nginx -p 18000:80 -v html:/usr/share/nginx/html nginx宿主机的/data/html与容器内部/usr/share/nginx/html双向绑定docker volume ls 查看数据卷列表
docker volume inspectdocker volume inspect html 查看数据卷可以cd到Mountpoint 查看宿主机双向绑定的目录docker volume rm 删除数据卷
docker volume prune 删除未使用的数据卷

本地目录挂载
首先安装一个mysql↓

docker run -d --name mysql -p 13306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql
docker inspect mysql 查看docker容器详情,此时会生成一个匿名卷,mysql的数据保存在这个地方docker run -v 本地目录:容器内目录本地目录必须以/或者./开头,否则会识别成数据卷测试:安装一个mysql,挂载数据目录、配置文件、初始化脚本
docker run -d \--name mysql \-p 13306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \-v /data/mysql/data:/var/lib/mysql \-v /data/mysql/init:/docker-entrypoint-initdb.d \-v /data/mysql/conf:/etc/mysql/conf.d \mysql

自定义镜像
基础镜像baseimage-层layer-入口entrypoint
dockerfile 构建镜像
FROM 指定基础镜像 FROM centos:6
ENV 设置环境变量
COPY 拷贝本地文件到镜像的指定目录 COPY xxx /tmp
RUN 执行shell命令 RUN tar -zxvf /tmp/xx.tar.gz
EXPOSE 暴露端口 EXPOSE 8080
ENTRYPOINT 启动命令 ENTRYPOINT java -jar xx.jar

docker网络
docker创建虚拟网卡docker0,默认ip端172.17.0.1/16,创建的容器与虚拟网卡桥接
自定义网络
形成一个新的网桥,可以通过容器名互相访问
命令
docker network create 网络名 创建新的网桥
net1

docker network connect net1 mysql
docker run ... --network net1 ...  创建容器时直接加入网络

docker compose
快速完成多个相互关联的docker容器的部署
命令
docker compose [options] [command]在这里插入图片描述

 docker compose up -d

http://www.ppmy.cn/news/1551122.html

相关文章

HtmX 表达的创建和交互

HTMX 提供了强大的功能&#xff0c;使得开发者能够创建可交互的表单元素&#xff0c;并提供更好的用户体验。以下是如何使用 HTMX 创建可交互表单元素的步骤&#xff1a; 1. 创建表单元素: 使用 HTML 创建基本的表单元素&#xff0c;例如 <input>、<select> 和 <…

go结构体匿名“继承“方法冲突时继承优先顺序

在 Go 语言中&#xff0c;匿名字段&#xff08;也称为嵌入字段&#xff09;可以用来实现继承的效果。当你在一个结构体中匿名嵌入另一个结构体时&#xff0c;嵌入结构体的方法会被提升到外部结构体中。这意味着你可以直接通过外部结构体调用嵌入结构体的方法。 如果多个嵌入结…

从技术视角看AI在Facebook全球化中的作用

在全球化日益加深的今天&#xff0c;人工智能&#xff08;AI&#xff09;作为一种变革性技术&#xff0c;正在深刻影响全球互联网巨头的发展方向。Facebook作为全球最大的社交媒体平台之一&#xff0c;正通过AI技术突破语言、文化和技术的障碍&#xff0c;推动全球化战略的实现…

3.26线性回归对率回归

就是说右边的线性组合算出一个z&#xff0c;在阶跃函数里&#xff0c;z>0就是1&#xff0c;<0就是-1 然后用对率回归的话就是大于0时是一个大于0.5的数&#xff0c;是计算得到的 最后输出的都是一个是不是的概率 只是传统的话&#xff0c;Z直接就是结果&#xff0c;而…

AI开发:生成式对抗网络入门 模型训练和图像生成 -Python 机器学习

阶段1&#xff1a;GAN是个啥&#xff1f; 生成式对抗网络&#xff08;Generative Adversarial Networks, GAN&#xff09;&#xff0c;名字听着就有点“对抗”的意思&#xff0c;没错&#xff01;它其实是两个神经网络互相斗智斗勇的游戏&#xff1a; 生成器&#xff08;Gene…

气膜建筑:打造全天候安全作业空间,提升工程建设效率—轻空间

在现代建筑工程中&#xff0c;施工环境的管理和作业效率是决定项目进度和质量的关键因素。然而&#xff0c;施工过程中常常会受到天气变化的影响&#xff0c;诸如大风、雨雪、沙尘等恶劣天气常常延误工期&#xff0c;增加施工难度。为了解决这一问题&#xff0c;气膜建筑以其独…

计算机网络八股整理(三)

目录 计算机网络八股&#xff08;三&#xff09;传输层1&#xff1a;说一下tcp的头部&#xff1f;2&#xff1a;tcp三次握手的过程说一下&#xff1f;拓展linux中查看tcp状态&#xff1a; 3:tcp为什么需要三次握手建立连接&#xff1f;4&#xff1a;tcp三次握手&#xff0c;如果…

思科模拟器Cisco Packet Tracer显示接口(port)标签(labels)

针对思科模拟器Cisco Packet Tracer显示接口(port)标签(labels) 点击 选项(Options) -> 首选项(preference) 窗口如下, 勾选Always Show Port Labels即可 效果如下