Docker基本操作学习

基本指令

docker服务启动:

bash 复制代码
service docker start
service docker restart
service docker stop

# 重启服务器自动运行docker
systemctl enable docker

镜像生成方式:

通过docker build DockerFile...

生成镜像

镜像相关指令:

bash 复制代码
docker push 仓库
# 如何获取:
docker pull 仓库
# 查找:
docker search 仓库

# docker查看有所有的镜像:
docker images

# 查看这个docker的详细信息:
docker inspect xxx

# 删除某个镜像:
docker rmi xxx

从镜像中创建一个容器:

docker run/exec/attach xxx

-it 可视化操作 --name设置容器名字 bash(运行命令行)

-p 映射端口 9000:8080 (将容器里的8080端口 映射到宿主机的9000端口上)

bash 复制代码
# 暂停某个容器:
docker pause node1
# 开启某个容器:
docker start node1
bash 复制代码
# 查看所有容器:
docker ps
# 删除某个容器:
docker rm node1

容器相关指令

bash 复制代码
# 通过容器保存成镜像:
docker commit 
# (适用于无状态服务)【谨慎使用】
# 退出时删除容器
docker run --rm xxx

# 并且运行如果失败时 也会自动删除容器
# 运行时 当你使用停止时 他会自动删除该容器


# 重启容器策略
# 默认不重启: no
# on-failure:3 最多重试3次重启
# always 只要挂了自动重启
# --restart on-failure:3

# 运行时指定环境变量
docker run xxx -p -d -e XXX=xx -e XXX=xx

# 查看环境变量的方式
docker inspect xxx

# 再容器中运行一个终端 执行env命令 
docker exec -it xxx env

# 查看容器内的日志 (-f 实时监听日志变化 -n只查看最后20行)
docker logs xxx  -f  -n 20

# 进入容器内部中(使用bash脚本进入xx容器中)
docker exec -it nginx01 /bin/bash  xxx
# 退出容器
exit 

进阶:

数据卷:

打通容器内跟容器外的数据 持久化数据存储 即便容器被删除了。也可以保留(匿名绑定方式除外) 像mysql redis这种需要持久化数据的

可以使用volume达到持久化共享数据

匿名绑定:【使用 -v 可以指定对应容器内的共享命令】 如果容器被删除后 对应的匿名容器共享的volume也会被删除

bash 复制代码
docker run -d --rm -p 80:80 --name nginx01 -v /usr/share/nginx/html nginx

docker inspect xxx

查看Mounts属性 可以看出你是否共享成功数据卷

具名绑定:
bash 复制代码
docker run -d --rm -p 80:80 --name nginx01 -v nginx-html:/usr/share/nginx/html nginx
# 此处的nginx-html就代表具名绑定 不过具名绑定的缺点是无法指定容器外的路径
Bind Mount【工作中常用的方式】:

即便docker被卸载了他也可以存在

把主机的目录共享到容器内的目录

bash 复制代码
docker run -d --rm -p 80:80 --name nginx01 -v /www/ragga.com:/usr/share/nginx/html nginx
数据卷管理

docker volume ls

网络NetWork

Bridge(默认模式)

Docker0 docker的网卡 - docker创建的虚拟网桥 跟主机的网卡平级

Host模式:

容器内网络跟主机网络共享同一个网卡(直接将容器暴露到外网)【不常用】【不安全】

None模式:

等于是只有容器本地的网络127.0.0.1 没有ip 完全网络隔离

Container算是一种解决方案

不会创建自己的网络空间 与其他容器共享网络空间 直接使用指定容器的ip/端口等

自定义网络模式:【推荐】

不使用docker自带的网络模式 自己定制化特有的网络模式

容器间的互联指令

--link 在运行时加上(不常用)

** => docker network connect ragga net1

为net1添加一个ragga的网卡

相关推荐
zyu671 小时前
03-Docker存储和网络
网络·docker·容器
xiaobai1781 小时前
测试工程师入门AI技术 - 前序:跨越焦虑,从优势出发开启学习之旅
人工智能·学习
北岛寒沫1 小时前
北京大学国家发展研究院 经济学原理课程笔记(第二十一课 金融学基础)
经验分享·笔记·学习
扑火的小飞蛾1 小时前
网络安全小白学习路线图 (基于提供文档库)
学习·安全·web安全
优雅的潮叭1 小时前
c++ 学习笔记之 malloc
c++·笔记·学习
牛奔2 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
薛不痒3 小时前
深度学习之优化模型(数据预处理,数据增强,调整学习率)
深度学习·学习
昵称已被吞噬~‘(*@﹏@*)’~3 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
我想我不够好。4 小时前
学到的知识点 1.8
学习
旖旎夜光4 小时前
Linux(9)
linux·学习