运维 - 实践篇(二)- 基础 Docker 开发环境搭建
Linux 搭建基础 Docker一、基础Docker环境搭建二、常用指令
文章目录
上一篇 《基础 Linux 服务器环境配置》我们已经为 Linux 服务器做了初步的处理,接下来我们将进行 Docker 环境的搭建,这里我们除了安装以外,还会通过创建桥接的网络模式来指定后续的 Docker 容器实例的IP。
一、Linux 搭建基础 Docker 环境
1. 前期准备工作(选做)
# 查看Linux版本信息
$ cat /etc/redhat-release
# 安装必要依赖
$ yum -y install gcc gcc-c++
$ yum -y install yum-utils device-mapper-persistent-data lvm2
# 卸载旧版本 (PS: 这里的 \ 换行符需要配合 ctrl + enter 使用)
$ yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装 docker-ce
这里的安装有多种方法,其实都是用的 yum
方法一:配置 yum docker 镜像源
方法二:wget 获取镜像资源
# 方法一 设置Docker yum源
$ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 方法二
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 安装 PS:可以通过 yum -y install docker-ce-20.10.12-3.el7 指定版本
$ yum -y install docker-ce
# 启动 & 自启动配置
$ systemctl enable docker && systemctl start docker && systemctl status docker
# 查看版本
$ docker --version
3. 配置 docker 国内加速镜像
这里采用的是阿里的国内镜像
# 这里正常情况下无需执行
$ mkdir /etc/docker
# 配置 docker 阿里云加速 "registry-mirrors": ["https://n8ygadq2.mirror.aliyuncs.com"],
$ cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://n8ygadq2.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 重启
systemctl daemon-reload
systemctl restart docker
4. 安装配置 docker-compose (可选)
docker-compose 配合 spring boot pom.xml 中 dockerHost 配置以及 dockerfile 文件,通过docker:build 能够实现快速的镜像容器发布部署
# 常规获取 docker-compose 包
$ wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64
# 因为是从 github 上下载,可能需要走 proxy 代理
$ wget -Y on -e "http_proxy=http://74.125.20.109:7890" https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64
# 移动 & 改名
$ mv -v docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 修改权限
$ chmod +x /usr/local/bin/docker-compose
# 编辑 docker.service 服务配置文件
$ vim /lib/systemd/system/docker.service
# 开放 2376 端口 建议改成12375 (2376 容器被攻击)
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:12375 -H unix:///var/run/docker.sock
# 重启 docker 服务
$ systemctl daemon-reload
$ systemctl restart docker.service
# 检查
$ netstat -nptl
tcp6 0 0 :::12375 :::* LISTEN 10729/dockerd
5. docker network 网络模式配置(可选)
配置Docker网络模式-指定Docker容器实例IP,这个配置对于后续的监控运维有很大的帮助,能够避免每次 docker 重启后容器IP不固定的问题。
1. 查看 Docker 支持的网络模式
bridge 桥接模式是 docker 默认的网络模式,不过为容器分配的IP地址是非固定的,这里我们可以自己创建,并且指定子网范围,后续在启动 Docker 容器时,可以选择指定网络模式与容器IP。
# 查看网络模式
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
a9a43c203504 bridge bridge local
d876b639e64a host host local
67d2d438cef7 none null local
# 查看网络模式内部信息 docker network inspect [network id & name]
$ docker network inspect a9a43c203504
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
2. 创建自己的 bridge 网络
docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 code-net
参数说明:
–driver bridge 表示桥接模式
–subnet 172.18.0.0/16 表示子网IP (172.18.0.2 ~ 172.18.255.255)
–gateway 172.18.0.1 表示网关
3. docker 容器指定 IP
这里拿 docker 部署 redis 为例
参数为 --network=code-net --ip 172.18.0.*
# 可以试试,也可以不试,接下来我会在此基础上搭建 Prometheus + Grafana 监控服务,其中就会用到当前配置的网络模式
$ docker run --network=code-net --ip 172.18.0.2 -d --restart=always --name redis -p 6390:6379 redis --requirepass "Xcode-redis?"
4. yaml 也能指定 networks (自行参考)
*. 相关指令
# 移除指定网络模式
$ docker network rm [network id & name]
# 查看运行容器IPAddress
$ docker inspect redis | grep IPAddress
附* 常用指令 (持续更新)
1. 批量删除 none 镜像
docker images | grep none | awk '{print $3}' | xargs docker rmi
说明:镜像是什么?如何产生?
—— 我们在重构镜像的时候,如果该镜像正在被某个容器使用,那么构建同名镜像的时候,docker会保留原来的镜像,即容器还是会使用原来的镜像,除非重启。
指令分析:
# 查询所有 none 镜像
$ docker images | grep none
# 查询所有 none 镜像的 id
$ docker images | grep none | awk '{print $3}'
# 删除所有 none 镜像
$ docker images | grep none | awk '{print $3}' | xargs docker rmi
更多推荐
所有评论(0)