Docker容器自动启动、网络类型、容器互联、容器跨宿主机通信、docker-compose使用

本文详细介绍了Docker容器的自动启动、四种网络类型、容器互联、通过macvlan和overlay实现跨宿主机通信的方法,以及docker-compose的使用教程。内容包括配置参数设置、网络创建、测试验证和容器编排工具的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 重启docker服务,容器全部退出解决办法

1.1 方法1,运行容器时添加参数(推荐使用)

--restart=always
docker run --restart=always

# 例子
[root@docker01 ~]# docker run -d --restart=always nginx-1.16.1:ubuntu 
be32abfee0ff311aafc4fe8366b720b7aee0cb36a2f71c65f38d25fcb49e73d2
[root@docker01 ~]# docker ps -l
CONTAINER ID        IMAGE                 COMMAND                 CREATED             STATUS              PORTS               NAMES
be32abfee0ff        nginx-1.16.1:ubuntu   "/bin/bash /nginx.sh"   4 seconds ago       Up 3 seconds                            dreamy_carson
[root@docker01 ~]# systemctl restart docker
[root@docker01 ~]# docker ps -l  # 这里注意CREATED和STATUS的时间,使用--restart=always重启后,CREATED时间不会清零
CONTAINER ID        IMAGE                 COMMAND                 CREATED             STATUS              PORTS               NAMES
be32abfee0ff        nginx-1.16.1:ubuntu   "/bin/bash /nginx.sh"   37 seconds ago      Up 5 seconds                            dreamy_carso

1.2 方法2,在配置文件添加参数

[root@docker01 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["10.0.0.11:5000"],
  "live-restore": true  # 加在这里

[root@docker01 ~]# systemctl restart docker

# 例子
[root@docker01 ~]# docker run -d nginx-1.16.1:alpine 
82b8143418db23ee034624bb7cea7da1b0811b71b1a94e499f6fcb913adf1e17
[root@docker01 ~]# docker ps -l
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES
82b8143418db        nginx-1.16.1:alpine   "nginx -g 'daemon of…"   3 seconds ago       Up 3 seconds                            relaxed_lovelace

[root@docker01 ~]# systemctl restart docker
[root@docker01 ~]# docker ps -l  # 这里容器docker后,CREATED和STATUS时间是不会改变的
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES
82b8143418db        nginx-1.16.1:alpine   "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes                            relaxed_lovelace

2. Docker网络类型

2.1 四种网络类型

(1)None:不为容器配置任何网络功能,--net=none 
(2)Container:与另一个运行中的容器共享Network Namespace,--net=container:containerID(K8S)
(3)Host:与宿主机共享Network Namespace,--network=host 性能最高,不用使用-p端口映射,直接使用宿主机端口
(4)Bridge:Docker设计的NAT网络模型(默认类型),container:容器id 

2.2 查看docker网络类型

[root@docker01 ~]# docker inspect 82b8143418db|grep -wi -A 1 networks
            "Networks": {
                "bridge": {  # 这就是容器默认使用的网络类型

3. 容器互联

# 默认情况下,容器启动后,容器内部可以与其他容器进行通讯,但是必须要知道对方的IP地址,而容器每次启动时,分配的IP地址都不一样。那么启动容器时可以添加--link参数,而且可以--link多个不同的容器,但是--link是单方向的。

[root@docker01 ~]# docker run -d -p 80:80 nginx-1.16.1:ubuntu 
591749f9d440b9c8703e414b9a17dae2572b73ad56d8eddfd56b635cef6b49d1
[root@docker01 ~]# docker run -d -p 81:80 nginx-1.16.1:ubuntu 
0adf57bb18343986c972b6ab23abacd23f07b1c4897a6fc4c51b7fb0599e425f
[root@docker01 ~]# docker ps 
CONTAINER ID        IMAGE                 COMMAND                 CREATED             STATUS              PORTS                NAMES
0adf57bb1834        nginx-1.16.1:ubuntu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值