docker系列(1) - docker环境篇

文章目录

  • [1. docker环境](#1. docker环境)
    • [1.1 docker安装](#1.1 docker安装)
    • [1.2 阿里云镜像加速器](#1.2 阿里云镜像加速器)
    • [1.2 docker管理工具(portainer)](#1.2 docker管理工具(portainer))
    • [1.3 docker网络](#1.3 docker网络)
      • [1.3.1 网络说明](#1.3.1 网络说明)
      • [1.3.2 创建指定网关的网络](#1.3.2 创建指定网关的网络)

1. docker环境

1.1 docker安装

shell 复制代码
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service

1.2 阿里云镜像加速器

在拉取镜像时,使用阿里云镜像速度更快点。

使用淘宝账号登录阿里云:

创建个人实例。

然后在镜像工具,镜像加速器可以看到。

将下面的这行脚本直接拷贝到linux中执行,即可。
https://xxxxxx.mirror.aliyuncs.com每个人注册后获取到的地址是不一样的。

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2 docker管理工具(portainer)

复制代码
#创建文件夹
mkdir -p /docker/portainer/{data,public}

#中文汉化
#注意安装前不要导入汉化包,否则无法注册。
https://www.quchao.net/Portainer-CN.html

# 运行
docker run -d -p 9000:9000 --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged=true \
portainer/portainer-ce

# 初始化登录地址
http://192.168.80.250:9000

admin
111111111111  (12位)

控制面板

容器管理

关于portainer来管理docker,非常方便,它几乎可以取代命令行的所有操作,有兴趣的可以专门去研究研究。

1.3 docker网络

1.3.1 网络说明

首先,我们需要创建一个自定义的网络,这样我们才可以使用Docker为容器分配固定IP。可以使用下面的命令来创建自定义网络:

如果只使用docker network create pub_network创建网络,则容器启动时,会自动分配动态的IP地址和网关。

复制代码
docker network create --subnet=192.168.0.0/16 pub_network

这个命令将创建名为"mynet"的网络,并指定它的子网为"192.168.0.0/16"。

接下来,我们需要为需要分配固定IP的容器指定IP地址。可以使用下面的命令来启动一个容器,并为它分配固定IP:

复制代码
docker run --name=ubuntu --net=pub_network --ip=192.168.0.101 -itd ubuntu:latest

这个命令将启动一个名为"ubuntu"的容器,并将它加入到自定义网络"mynet"中。同时,它还为这个容器分配了固定IP地址"192.168.0.101"。

现在,我们可以验证容器的IP地址是否生效。可以使用下面的命令来查看容器的IP地址:

复制代码
docker inspect ubuntu | grep IPAddress

这个命令将输出包含容器IP地址的行,从而验证我们刚才为容器分配的固定IP地址是否生效了。

最后,需要注意的是,我们可以为同一个网络中的多个容器分配不同的IP地址,但IP地址必须在同一个子网中。

复制代码
#将容器1添加到my_network网络中
docker network connect my_network container1
#从网络中删除容器1
docker network disconnect my_network container1
#使用Bridge模式进行网络配置
docker run -it --name my_container --net bridge

1.3.2 创建指定网关的网络

重点:指定网关和固定的网段之后,在启动容器中指定IP地址,即可为容器分配静态IP,这样容器重启后IP地址不会变更。

SpringBoot这类的应用项目,在连接数据库的配置文件中配置MySQL的连接时,就可以直接使用MySQL的静态IP地址,这样重启MySQL后也不会导致IP地址变更。

复制代码
docker network create --subnet 192.168.10.0/16 --gateway 192.168.10.1 pub_network 
相关推荐
真正的醒悟40 分钟前
2025【1460天】网络工程师经验之道
运维·服务器
JosieBook6 小时前
【远程运维】Linux 远程连接 Windows 好用的软件:MobaXterm 实战指南
linux·运维·windows
鳄鱼杆7 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou7 小时前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)8 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
逍遥浪子~8 小时前
docker实践(一)
运维·docker·容器
AI云原生9 小时前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
今生相伴9919 小时前
ELFK:企业级日志管理的完整解决方案——从入门到精通
运维·elk·elasticsearch
小猪咪piggy10 小时前
【JavaEE】(24) Linux 基础使用和程序部署
linux·运维·服务器
IT 小阿姨(数据库)10 小时前
PgSQL中pg_stat_user_tables 和 pg_stat_user_objects参数详解
linux·运维·数据库·sql·postgresql·oracle