Docker安装

安装Docker

环境查看

# 系统内核在3.10以上
[root@bogon /]# uname -r
4.18.0-193.el8.x86_64
[root@bogon /]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

安装

# 1、 卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2、 需要的安装包
yum install -y yum-utils
# 3、 设置镜像厂库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo # 国外的
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 推荐阿里云的
# 更新yum软件包索引
yum makecache timer
# 4、 安装docker相关
yum install docker-ce docker-ce-cli containerd.io --nobest
# 5、 启动docker
systemctl start docker
# 6、 验证安装
docker version
# 7、 hello-world
docker run hello-world
# 8、 查看下载的hello-world镜像
docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   12 months ago   13.3kB

卸载docker

# 1、 卸载资源
yum remove docker-ce docker-ce-cli containerd.io

# 2、 删除资源
rm -rf /var/lib/docker

# /var/lib/docker docker的默认路径

阿里云镜像加速

1、登录阿里云,搜索容器镜像服务

2、选择镜像加速器,CentOS

3、配置使用

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7sf95hif.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

底层原理

Docker是怎么工作的?

Docker是一个client-server结构的系统,Docker的守护进程运行在主机上,通过socket从客户端访问!

DockerServer接收到Docker-Client的指令,就会执行这个命令!

Docker为什么比VM快?

1、Docker比虚拟机更少的抽象层

2、 Docker利用的是宿主机的内核,VM需要的是Guest OS

所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加载Guest OS,分钟级别的,而Docker是利用宿主机的操作系统,省略了这个复杂的过程!

Docker的常用命令

帮助命令

docker version    #docker版本信息
docker info       #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #万能命令

镜像命令

docker images 查看所有本地的主机上的镜像
[root@bogon /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   12 months ago   13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG        镜像的标签
IMAGE ID   镜像的id
CREATED    镜像的创建时间
SIZE       镜像的大小
# 可选项
-a, --all       # 列出所有镜像
-q, --quiet     # 只显示镜像的id
docker search 搜索镜像
[root@bogon /]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10380     [OK]       
mariadb                           MariaDB is a community-developed fork of MyS…   3848      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   758                  [OK]
# 可选项,通过收藏来过滤
--filter=STARS=3000 #搜索镜像收藏大于3000的

docker pull 下载镜像
# 下载镜像 docker pull 镜像名[:tag]
[root@bogon /]# docker pull mysql 
Using default tag: latest # 如果不写tag,默认就是latest
latest: Pulling from library/mysql
a076a628af6f: Pull complete  # 分层下载:docker image的核心 联合文件系统
f6c208f3f991: Pull complete 
88a9455a9165: Pull complete 
406c9b8427c6: Pull complete 
7c88599c0b25: Pull complete 
25b5c6debdaf: Pull complete 
43a5816f1617: Pull complete 
1a8c919e89bf: Pull complete 
9f3cf4bd1a07: Pull complete 
80539cea118d: Pull complete 
201b3cad54ce: Pull complete 
944ba37e1c06: Pull complete 
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址

# 等价于它
docker pull mysql
docker pull docker.io/library/mysql:latest

# 指定版本下载
[root@bogon /]# docker pull mysql:8.0.23
8.0.23: Pulling from library/mysql
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c
Status: Downloaded newer image for mysql:8.0.23
docker.io/library/mysql:8.0.23
docker rmi 删除镜像
[root@bogon /]# docker rmi -f 容器id   # 删除指定的容器
[root@bogon /]# docker rmi -f 容器id 容器id # 删除多个容器
[root@bogon /]# docker rmi -f $(docker images -aq) # 删除全部的容器

容器命令

说明:有了镜像才能创建容器

docker pull centos

新建容器并启动
docker run [可选参数] image

# 参数说明
--name="Name"       容器名字  tomcat01 tomcat02 用来区分容器
-d                  后台方式运行
-it                 使用交互方式运行,进入容器查看内容
-p                  指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-p                  随机指定端口

# 测试 启动并进入容器
[root@bogon /]# docker run -it centos /bin/bash 
[root@16eeb44e66e3 /]# ls  # 查看容器内的CentOS
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 从容器中退出容器
[root@16eeb44e66e3 /]# exit 
exit
[root@bogon /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
列出所有的运行容器
# 列出当前正在运行的容器
[root@bogon /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 列出当前以及历史运行的容器
[root@bogon /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED             STATUS                          PORTS     NAMES
16eeb44e66e3   centos         "/bin/bash"   3 minutes ago       Exited (0) About a minute ago             optimistic_sinoussi
c281b6c6af36   bf756fb1ae65   "/hello"      About an hour ago   Exited (0) About an hour ago              objective_swirles

# 列出最近创建的容器
[root@bogon /]# docker ps -a -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
16eeb44e66e3   centos    "/bin/bash"   5 minutes ago   Exited (0) 3 minutes ago             optimistic_sinoussi

# 只显示容器的编号
[root@bogon /]# docker ps -aq -n=1
16eeb44e66e3
退出容器
exit #直接容器停止并退出
Ctrl + p + q # 容器不停止并退出
删除容器
docker rm 容器id                 # 删除指定的容器,不能删除正在运行的容器,强制删除 rm -f
docker rm -f -f $(docker ps -aq) # 删除所有的容器
docker ps -a -q|xargs docker rm  # 删除所有的容器
启动和停止容器的操作
docker start 容器id   # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id    # 停止当前正在运行的容器
docker kill 容器id    # 强制停止

常用的其他命令

后台启动容器
# 命令 docker run -d 镜像名
[root@bogon /]# docker run -d centos

#docker ps 发现容器停止了

# 常见的问题,docker 容器使用后台运行 就必须有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,所有就没有程序了
查看日志
# 显示日志
-tf   # 显示全部的日志
-tail num # 显示日志条数
docker logs -f -t --tail 10 容器id
查看容器中的进程信息 ps
# 命令 docker top 容器id
查看镜像的元数据
docker inspect 容器id
进入当前正在运行的容器
# 对于后台运行的容器

# 命令
docker exec -it 容器id bash
# 方式二
docker attach 容器id

# 区别
# docker exec # 进入容器后开启一个新的终端,可以在里面操作
# docker attach # 进入容器正在执行的终端
从容器内拷贝到主机上
docker cp 容器id:容器内文件路径 目的主机路径

# 测试
root@bogon /]# docker attach ed760c1ad213
[root@ed760c1ad213 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@ed760c1ad213 /]# cd /home/
[root@ed760c1ad213 home]# touch test.java
[root@ed760c1ad213 home]# ls
test.java
[root@ed760c1ad213 home]# exit
exit
[root@bogon /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@bogon /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 将文件拷贝到主机上
[root@bogon /]# docker cp ed760c1ad213:/home/test.java /home
[root@bogon /]# cd /home/
[root@bogon home]# ls
test.java

MySQL的安装

# 拉取镜像
docker pull mysql

# 启动mysql服务
docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

Nginx安装

# 拉取镜像
docker pull nginx

# 启动nginx服务
docker run -di --name=mynginx -p 80:80 nginx

Tomcat安装

# 拉取镜像
docker pull tomcat:9.0

# 启动tomcat
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0

# 进去tomcat容器
docker exec -it tomcat01 /bin/bash

# 复制webapps.dist文件到webapps
cp -r webapps.dist/* webapps

Redis安装

# 拉取镜像
docker pull redis

# 启动
docker run -it --name myredis -p 6379:6379 redis

elasticsearch和kibana安装

# 拉取镜像
docker pull elasticsearch:7.10.1

# 设置网络
docker network create somenetwork

# 启动
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1
# 推荐下面这种,不需要设置网络
docker run -d --name essearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms300m -Xmx300m" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.1

# docker stats 
# 查看docker容器的内存状况

# 关闭elasticsearch,太耗内存,-e 进行环境配置修改
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.10.1

# 测试
[root@bogon ~]# curl localhost:9200
{
  "name" : "204ec59e1ea7",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "OyDCKV3eSS26iH2ADJ31Ww",
  "version" : {
    "number" : "7.10.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
    "build_date" : "2020-12-05T01:00:33.671820Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

# 安装kibana
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.10.1

# 进入容器,修改config目录下的kibana.yml
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.233.129:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

# 退出
exit

# 重启服务
docker restart 容器id

可视化

  • portainer
  docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

什么是portainer?

Docker图形化界面管理工具!提供一个后台面板给我们操作!

测试

浏览器输入:192.168.233.129:8088

commit镜像

docker commit 提交容器成为一个新的副本

# 命令
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

# 测试
# 1、启动tomcat镜像
ocker run -d -p 3355:8080 --name tomcat tomcat:9.0

# 2、进入tomcat修改webapps文件
docker exec -it tomcat /bin/bash
cp -r webapps.dist/* webapps

# 3、退出
exit

# 4、提交修改过的tomcat
docker commit -a="gx" -m="add webapps app" e8c6c6c3f7e0 tomcat01:1.0.0

卷技术

# 连接数据库
# -v 卷挂载 
docker run -d -p 33306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql

# 实现数据持久化

具名和匿名挂载

-v 容器内路径 # 匿名挂载 
docker run -d -P --name nginx01 -v /etc/nginx nginx

-v 卷名:容器内路径 # 具名挂载 所有docker的卷没有指定路径都存放在 /var/lib/docker/volumes/卷名/_data
docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx

-v /宿主机路径:容器内路径 # 指定路径挂载 
docker run -d -P --name nginx01 -v /home/nginx/data:/etc/nginx nginx

ro  readonly # 只读
rw  readwrite # 读写
docker run -d -P --name nginx01 -v /etc/nginx:ro nginx

数据卷容器

实现容器间的数据共享

# 通过 --volumes-from 实现卷绑定挂载,实现数据同步
docker run -it --name dicker01 centos

docker run -it --name docker02 --volumes-from docker01 centos

DockerFile

Dockerfile用于构建docker镜像的文件!命令参数脚本!

构建步骤:

基础知识

1、每个关键字(指令)都必须是大写

2、执行顺序由上到下

3、# 表示注释

4、每个指令都会创建一个新的镜像层,并提交!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7IjMo7v-1625841492188)(C:\Users\郭旭\AppData\Roaming\Typora\typora-user-images\image-20210121164748631.png)]

DockerFile是面向开发的,我们要发布项目,就需要制作镜像,就需要编写dockerfile文件,Docker镜像逐渐成为企业交付的标准。

DockerFile:构建镜像的初始化文件,源代码。

DockerImages:通过DockerFile构建生成的容器,最终发布和运行的产品。

Docker容器:容器就是镜像运行起来的服务器。

DockerFile的指令

FROM          # 基础镜像,一切的开始
MANTAINER     # 镜像作者(姓名+邮箱)
RUN           # 镜像构建的时候需要运行的命令
ADD           # 步骤中添加tomcat镜像,这个tomcat压缩包就是添加内容
WORKDIR       # 镜像的挂载目录 
VOLUME        # 挂载的目录位置
EXPOSE        # 指定暴露端口
CMD           # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代,如果替代之后不是命令,会报错的
ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加执行命令
ONBUILD       # 当构建一个被继承的DockerFile,这个时候就会运行ONBUILD 的指令,触发指令。
COPY          # 类似AD的,将我们的镜像拷贝到镜像中
WNV           # 构建的时候设置环境变量

创建一个自己的CentOS

# 1、编写DockerFile文件
[root@bogon dockerfile]# cat mydockerfile-centos 
FROM centos
MAINTAINER gx<2233247258@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash 

# 2、通过该文件创建镜像
docker build -f 文件路径 -t 镜像名称:[TAG]
docker build -f mydockerfile-centos -t mycentos:0.1 .

# 中间可能出现
Errors during downloading metadata for repository 'appstream':
  - Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=container [Could not resolve host: mirrorlist.centos.org]
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=container [Could not resolve host: mirrorlist.centos.org]
# 停止防火墙
systemctl stop firewalld
# 重启docker服务
systemctl restart docker

# 测试运行
[root@bogon dockerfile]# clear
[root@bogon dockerfile]# docker run -it mycentos:0.1
[root@2f0ed3101a96 local]# pwd
/usr/local
[root@2f0ed3101a96 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@2f0ed3101a96 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@2f0ed3101a96 local]# vim tesr
[root@2f0ed3101a96 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src

# 查看镜像如何生成
docker history 镜像id或者镜像名:[TAG]

集成jdk的Tomcat

# 准备文件
[root@bogon tomcat]# ll
总用量 188532
-rw-r--r--. 1 root root  11442169 122 01:50 apache-tomcat-9.0.41.tar.gz
-rw-r--r--. 1 root root 181608904 122 01:46 jdk-11.0.9_linux-x64_bin.tar.gz

# 编写DockerFile文件,官方命名Dockerfile ,build会自动
# 新建镜像以centos为基础模板
FROM centos
MAINTAINET gx<2233247258@qq.com>

# 将readme文件添加进去
COPY readme.txt /usr/local/readme.txt

# 将jdk11和tomcat9.0压缩文件复制到镜像中,自动解压tar文件
ADD jdk-11.0.9_linux-x64_bin.tar.gz /usr/local/
ADD apache-tomcat-9.0.41.tar.gz /usr/local/

# 安装vim指令
RUN yum -y install vim

# 设置文件路径和工作路径
ENV MYPATH /usr/local
WORKDIR $MYPATH

# 设置环境变量
ENV JAVA_HOME /usr/local/jdk-11.0.9
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.41
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.41
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

# 暴露端口
EXPOSE 8080

# 自启动
CMD /usr/local/apache-tomcat-9.0.41/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.41/bin/logs/catalina.out

# 3、构建镜像
docker build -t diytomcat 

# 4、启动镜像
docker run -d -p 9090:8080 --name gxtomcat -v /home/gx/build/tomcat//test:/usr/local/apache-tomcat-9.0.41/webapps/test -v /home/gx/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.41/logs diytomcat

# 发布项目(由于进行了卷挂载,在本地即可发布)
web.xml
  <?xml version="1.0" encoding="UTF-8"?>
  <web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                               http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">

  </web-app>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
Hello World!<br/>
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());
%>
</body>
</html>
# 项目发布成功

Docker网络

自定义网络

查看所有的docker网络

# docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
ac70e6f38716   bridge        bridge    local
78cda27c6a77   host          host      local
e2b82e502866   none          null      local
a9bf053a1786   somenetwork   bridge    local

网络模式

bridge:桥接(docker默认)

none:不配置网络

host:和宿主机共享网络

container:容器网络连通(局限太多)

测试:

# 默认添加--net bridge
docker run -d -P --name tomcat01 --net bridge tomcat

# 自定义一个网络
[root@bogon ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
7b4a7bed6084f2f738dc36171f286a87fa3ca35b8118cc7ee833907ced4fbd65
[root@bogon ~]# docker network ls
NETWORK ID     NAME          DRIVER    SCOPE
7b4a7bed6084   mynet         bridge    local

# 查看
[root@bogon ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "7b4a7bed6084f2f738dc36171f286a87fa3ca35b8118cc7ee833907ced4fbd65",
        "Created": "2021-01-22T17:46:46.681395472+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

# 运行容器在自定义的网络上
docker run -d -P --name tomcat-net-01 --net mynet tomcat

打通网络

# docker network connet [OPTIONS] NETWORK CONTAINER

# docker network connet mynet tomcat01
# 就是把tomcat01放在mynet网络下

river": “bridge”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: {},
“Config”: [
{
“Subnet”: “192.168.0.0/16”,
“Gateway”: “192.168.0.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: “”
},
“ConfigOnly”: false,
“Containers”: {},
“Options”: {},
“Labels”: {}
}
]

运行容器在自定义的网络上

docker run -d -P --name tomcat-net-01 --net mynet tomcat


**打通网络**

```shell
# docker network connet [OPTIONS] NETWORK CONTAINER

# docker network connet mynet tomcat01
# 就是把tomcat01放在mynet网络下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立花泷える宫水三叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值