docker上手记录
一、前言
docker是一个将软件虚拟化的工具,可以在任意设备上,建立虚拟机跑软件,实现快速环境搭建运行
二、安装
自行百度,不造轮子了
三、配置
1. docker的默认网段
- 修改
/etc/docker/daemon.json
- 默认的网段是
172.17.0.0/12
,size是16。代表分配的网桥段是172.[17-31].0.0/16
- 下面配置代表新建立的网桥分配段为
172.31.[0-255].0/24
- 例如: 网桥1
172.22.31.1.0/24
,网桥2172.22.31.2.0/24
{
"default-address-pools": [
{
"base": "172.31.0.0/16",
"size": 24
}
]
}
注意
- 已经建立好的网桥不会清除,需要停止容器,删除对应网桥重新起容器绑定新的才可以
2. docker的网络模式
- host: 不生成虚拟网卡和ip,使用宿主机的网络,无法使用端口映射
- container: 和另一个容器共享ip和端口,compose配置
network_mode: "container:[container name/id]"
- none: 关闭容器网络功能,容器无法联网
- bridge: 创建一个网桥,虚拟出网卡和ip,通过docker0和iptables配置和主机通信
- service: compose的概念,和service共享网络,配置
network_mode: "service:[service name]"
四、常用命令
########## container##########
# 查看所有容器
docker ps -a
# 停止容器
docker stop [container_id]
# 删除container
docker rm [container_id]
# 将某个容器变成自启动
docker update [container_id] --restart=always
# 拷贝文件
docker cp [OPTIONS] [container_id]:[SRC_PATH] [DEST_PATH]
docker cp [OPTIONS] [SRC_PATH] [container_id]:[DEST_PATH]
########## image ##########
# 列出所有image
docker image list
# 导入一个image
docker load -i [image_file]
# 导出一个image,使用image_id打包后导入名字会变成none
docker save [image_id|image_name:tag