Docker 要求 CentOS 系统的内核版本高于 3.10 , uname -r 命令查看你当前的内核版本

1 安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  

2 添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

3 更新 yum 缓存:

sudo yum makecache fast

 

4 安装 Docker-ce:

sudo yum -y install docker-ce

 

5 启动 Docker 后台服务

sudo systemctl start docker

 

6 配置 镜像加速

vim /etc/docker/daemon.json

 

{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

 

docker删除命令

sudo yum remove docker-ce
sudo rm -rf /var/lib/docker

Docker 安装mysql

1 查找Docker Hub上的mysql镜像

docker search mysql

 

2 这里我们拉取官方的镜像,标签为5.6

docker pull mysql:5.6

 

3 等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.6的镜像。

docker images |grep mysql

 

使用 mysql 镜像

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

命令说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

  • -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。

  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

  • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

查看容器启动情况

docker ps 

 

登陆mysql

mysql -u root -p

 

Docker 安装Nginx

1 查找 Docker Hub 上的 nginx 镜像

docker search nginx

 

2 这里我们拉取官方的镜像

docker pull nginx

 

3 等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。

docker images nginx

 

4 以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例:

 docker run --name runoob-nginx-test -p 8081:80 -d nginx
  • runoob-nginx-test 容器名称。
  • the -d设置容器在在后台一直运行。
  • the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。

执行以上命令会生成一串字符串,类似 1dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,这个表示容器的 ID,一般可作为日志的文件名。

 

5 我们可以使用 docker ps 命令查看容器是否有在运行:

docker ps

 

6 PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。

在浏览器中打开 http://127.0.0.1:8081/,效果如下:

docker安装各类软件

nginx 部署

首先,创建目录 nginx, 用于存放后面的相关东西

mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

 

拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:

docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/nginx/conf
  • www: 目录将映射为 nginx 容器配置的虚拟目录。
  • logs: 目录将映射为 nginx 容器的日志目录。
  • conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

部署命令

docker run -d -p 8082:80 --name runoob-nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
  • -p 8082:80: 将容器的 80 端口映射到主机的 8082 端口。

  • --name runoob-nginx-test-web:将容器命名为 runoob-nginx-test-web。

  • -v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

  • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

  • -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

cd ~/nginx/www

 

创建 index.html 文件,效果如下:

docker安装各类软件

 

 

 

 

相关命令

如果要重新载入 NGINX 可以使用以下命令发送 HUP 信号到容器:

docker kill -s HUP container-name

重启 NGINX 容器命令:

 docker restart container-name

 

Docker 安装 Tomcat

1 查找Docker Hub上的tomcat镜像

docker search tomcat

 

2 这里我们拉取官方的镜像

 docker pull tomcat

 

3 等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为tomcat的镜像。

docker images|grep tomcat

 

 

使用tomcat镜像

docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat  

命令说明:

-p 8080:8080:将容器的8080端口映射到主机的8080端口

-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test

查看容器启动情况

docker ps 

 

通过浏览器访问

docker安装各类软件

 

 

 

Docker 安装 java

1 查找Docker Hub上的java jdk镜像

docker pull java:8u111

 

2 这里我们拉取官方的镜像

docker pull java:8u111

 

3 使用镜像

docker run -d -p 9090:9090 -v /usr/springboot-1.jar:/usr/springboot-1.jar --name springboot java:8u111 java -jar /usr/springboot-1.jar

命令说明:

  • -d 表示在后台启动
  • -p 9090:9090 表示将容器的端口 映射成宿主主机的端口,否则9090端口访问不到
  • -v /usr/springboot-1.jar:/usr/springboot-1.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
  • --name springboot 表示为该容器取一个全局唯一的名称,这里我取的名称为springboot
  • java:8u111 表示镜像文件的名称和tag
  • java -jar /usr/springboot-1.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的

查看镜像

docker images

 

 

Docker 安装 rabbit

1 查找Docker Hub上的rabbit镜像

docker search rabbitmq:3-managemen

 

2 这里我们拉取官方的镜像

docker pull rabbitmq:3-managemen

 

 

3 使用镜像

第一种是 默认生成的 登陆名guest  密码guest

第二只种 可设置密码

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management

docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:3-management

 

命令说明:

  • -d 后台运行容器;
  • --name 指定容器名;
  • -p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
  • -v 映射目录或文件;
  • --hostname  主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
  • -e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
docker ps docker exec -it 镜像ID /bin/bash 
rabbitmq-plugins enable rabbitmq_management

访问:http://192.168.182.136:15672/

  

 

Docker 安装 Redis

1 查找Docker Hub上的Redis镜像

 docker search  redis

 

2 这里我们拉取官方的镜像

docker pull  redis:5.0

 

3 使用镜像

docker run -p 6379:6379 -v $PWD/data:/data  -d redis:3.2 redis-server --appendonly yes

 

4 连接容器

docker exec -it 4655d050c898 redis-cli

 

5 查看容器信息

info

 

Docker 安装 Jenkins

1.pull一个jenkins镜像

docker pull jenkins/jenkins:lts

这个是安装最新版的jenkins,如果安装旧版本,很多插件安装不上,docker环境下升级又比较麻烦。

 

2.查看已经安装的jenkins镜像

docker images

 

3.创建一个jenkins目录

mkdir /home/jenkins_home

 

4.启动一个jenkins容器

docker run -d --name jenkins -p 8082:8080 -v /home/jenkins:/home/jenkins jenkins/jenkins:lts ;

 

5.查看jenkins服务

docker ps | grep jenkins或者docker ps

 

6.访问http://39.108.62.247:8082/  

docker安装各类软件

 

 7.进入容器内部

docker exec -it jenkins /bin/bash;

 

8.执行:cat /var/jenkins_home/secrets/initialAdminPassword,得到密码并粘贴过去,然后就安装完成了

 

 

Docker 安装 Gogs(搭建git网站)

1 pull一个gogs镜像

docker pull gogs/gogs

 

2 创建gogs的存储目录

mkdir -p /var/gogs

3 运行镜像 生成容器

docker run --name=gogs -d  -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs

4 访问 http://xxx.xxx.xxx.xxx:10080/ 

 

Docker 安装Sentinel

1 pull一个sentinel镜像

docker pull bladex/sentinel-dashboard:1.7.0

2 运行容器

docker run --name sentinel -d  -p 8858:8858  bladex/sentinel-dashboard:1.7.0

3 访问http://localhost:8858/即可:

docker安装各类软件

 

Docker 安装zipkin

docker run -d -p 9411:9411 openzipkin/zipkin:latest

 访问 http://192.168.182.137:9411/

Docker 安装ES+IK+Kibana+ Logstash+Filebeat

自定义网络:

保证同一网络下的容器 (ElasticSearch、Logstash、Kibana)相互访问。

docker network create elk

 

1 创建目录

mkdir -p /usr/local/elasticsearch/{config,data}
chmod 777 /usr/local/elasticsearch/{config,data}

2 拉取es镜像

docker pull elasticsearch:7.14.1

3 创建配置文件elasticsearch.yml

vim /usr/local/elasticsearch/config/elasticsearch.yml

添加配置信息

# 允许通过本机所有IP访问
http.host: 0.0.0.0
# 是否支持跨域,默认为false
http.cors.enabled: true 
http.cors.allow-origin: "*" 

4 创建和启动容器

docker run -d --name elasticsearch --net elk --restart always \
-p 9200:9200 -p 9300:9300  \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "discovery.type=single-node" \
-v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
elasticsearch:7.14.1
JVM堆内存大小设置 128M 时,安装 IK 分词器的时候会报错,建议堆内存设置至少 256M。

5 安装分词器IK

访问 https://github.com/medcl/elasticsearch-analysis-ik/releases 查找与 ElasticSearch 版本对应的分词器,复制其完整下载地址。
安装ik:
docker exec -it elasticsearch /bin/sh cd bin/ elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
elasticsearch-plugin list  //进入容器查看

elasticsearch-plugin remove analysis-ik //删除ik命令 此处步骤不用删除

重启ElasticSearch

docker restart elasticsearch

 

6 安装kibana

docker pull kibana:7.14.1

 

7创建和启动kibana

docker run -d --name kibana --restart always \
-e ELASTICSEARCH_HOSTS=http://192.168.182.137:9200 \
-v /usr/local/kibana/config/kibana.yml:/etc/kibana/kibana.yml -p 5601:5601 kibana:7.14.1

访问 192.168.182.132:5601 ,可以看到Kibana界面

8 安装logstash

创建目录

mkdir -p /usr/local/logstash/{config,data,pipeline}
chmod 777 /usr/local/logstash/{config,data,pipeline}

设置JVM内存大小

vim /usr/local/logstash/config/jvm.options
-Xmx128m
-Xms128m

logstash配置

vim /usr/local/logstash/config/logstash.yml

添加配置信息

# 允许通过本机所有IP访问
http.host: "0.0.0.0"
# 指定使用管道ID
xpack.management.pipeline.id: ["main"]

管道ID和配置文件路径映射

vim /usr/local/logstash/config/pipelines.yml 
- pipeline.id: main
  path.config: "/usr/local/logstash/pipeline"
注意符号 - 前后都要有空格

管道配置

添加 微服务应用日志管道配置,在上面指定了管道配置容器目录 /usr/local/logstash/pipeline , 后面启动 Logstash 时会将其挂载至宿主机目录 /usr/local/logstash/pipeline,接下来只要在宿主机目录下添加管道配置文件 xxx-log.config 就可以被 Logstash 自动加载生效。

vim /usr/local/logstash/pipeline/xxx-log.config
input {
 beats {
    port => 5044
    client_inactivity_timeout => 36000
  }
}
filter {
   mutate {
        remove_field => ["@version"]
        remove_field => ["tags"]
   }
}
output {
  if [appname] == "xxx-admin" {
     elasticsearch {
       hosts => "http://elasticsearch:9200"
       index => "xxx-admin-log"
     }
  }else if [appname] == "xxx-auth" {
     elasticsearch {
       hosts => "http://elasticsearch:9200"
       index => "xxx-auth-log"
     }
  }
  stdout {}
}

可以看到在 output 里根据 appname 生成的不同索引库,其中 appname 是 filebeat 自定义字段,目的区分多应用日志,自定义字段在 Filebeat部署的时候定义。

创建和启动容器

docker run -d --name logstash --net elk --restart always \
-p 5044:5044 -p 9600:9600 \
-v /usr/local/logstash/config:/usr/share/logstash/config \
-v /usr/local/logstash/data:/usr/share/logstash/data \
-v /usr/local/logstash/pipeline:/usr/share/logstash/pipeline \
logstash:7.14.1

9 安装Filebeat

创建目录

mkdir -p /usr/local/filebeat/config
chmod 777 /usr/local/filebeat/config

配置文件

vi /usr/local/filebeat/config/filebeat.yml
添加如下配置:

filebeat.inputs:
- type: log
enabled: true
paths:
- /logs/xxx-admin/log.log
fields:
appname: xxx-admin # 自定义字段,提供给 Logstash 用于区分日志来源
fields_under_root: true # 开启自定义字段
- type: log
enabled: true
paths:
- /logs/xxx-auth/log.log
fields:
appname: xxx-auth
fields_under_root: true

processors:
- drop_fields:
fields: ["log","input","host","agent","ecs"] # 过滤不需要的字段

output.logstash:
hosts: ['xx.xx.xx.xx:5044']

/logs/xxx-admin/log.log 是应用 xxx-admin 输出的日志文件路径

xx.xx.xx.xx 是部署 Logstash 服务器的IP地址

拉取docker镜像

docker pull elastic/filebeat:7.14.1

创建和启动容器:

docker run -d --name filebeat --restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2  \
-v /logs:/logs \
-v /usr/local/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml \
elastic/filebeat:7.14.1

部署到项目请联系本作者

docker 常用命令

 

docker服务自动重启设置

systemctl enable docker.service

 docker查看已有网络

docker network ls  //查看网络

docker network create 网络名称  //创建网络

docker network rm 网络名称  //删除网络

Docker自带3种网络模式 bridge、host、none

 

docker容器自动启动设置

docker update --restart=always <CONTAINER ID>

  在使用docker run启动容器时,也可以使用--restart参数来设置:

 

连接容器

docker exec -it  容器ID或者容器名 /bin/bash

 

 

 

查看容器映射的端口

docker container port 容器ID

 

 

 

docker cp命令

语法:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

 

OPTIONS说明:

-L :保持源目标中的链接

实例

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下

docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www

docker cp /www/runoob 96f7f14e99ab:/www

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中

docker cp  96f7f14e99ab:/www /tmp/

 

 

容器操作

设置docker内容器自启动

 

docker update 容器ID --restart=always

 

运行容器

使用命令:docker run --name container-name:tag -d image-name

  1. --name:自定义容器名,不指定时,docker 会自动生成一个名称
  2. -d:表示后台运行容器
  3. image-name:指定运行的镜像名称以及 Tag 

如下所示启动 docker.io/tomcat 镜像成功,前缀 docker.io 可以不写,后面的 tag 版本号要指定。可以使用 docker ps 命令查看容器

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    8.5.32              5808f01b11bf        35 hours ago        463 MB
[root@localhost ~]# docker run --name myTomcat -d tomcat:8.5.32
1cbabce49b840d14ab01e25e0d282737b853681debdc541fddf27b508906a62a
[root@localhost ~]# 

 

查看容器

使用 docker ps 命令 查看正在运行的所有容器,加上 -a 参数可以查看所有容器(即无论是否运行中)

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    8.5.32              5808f01b11bf        35 hours ago        463 MB
[root@localhost ~]# docker run --name myTomcat -d tomcat:8.5.32
1cbabce49b840d14ab01e25e0d282737b853681debdc541fddf27b508906a62a
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   4 minutes ago       Up 4 minutes        8080/tcp            myTomcat
[root@localhost ~]#

CONTAINER ID:容器 di

IMAGE:镜像名称:Tag

 COMMAND:命令

CREATES:容器创建的时刻

STATUS:容器当前的状态 (up 表示运行、Exited 表示停止运行)

PORTS:镜像程序使用的端口号

注意此时虽然容器已经在运行中,Tomcat 镜像占用8080端口,但是这个8080端口是 Docker 容器内部的端口,并不是服务器的端口,所以必须做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。

停止容器

使用 docker stop container-name/container-id 命令进行停止容器运行,指定容器名或者容器 id 即可

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   14 minutes ago      Up 14 minutes       8080/tcp            myTomcat
[root@localhost ~]# docker stop 2cbabce49b66
1cbabce49b84
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   16 minutes ago      Exited (143) About a minute ago                       myTomcat
[root@localhost ~]#

 

启动容器

使用 docker start container-name/container-id 命令启动停止运行的容器,同理可以根据 容器名或者 容器 id 进行启动

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                           PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   About an hour ago   Exited (143) About an hour ago                       myTomcat
[root@localhost ~]# docker start 1cbabce49b84
1cbabce49b84
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   About an hour ago   Up 3 seconds        8080/tcp            myTomcat
[root@localhost ~]#

删除容器

  • 使用 docker rm container-id 命令 删除容器,删除容器前,必须先停止容器运行,根据 容器 id 进行删除
  • rm 参数是删除容器,rmi 参数是删除镜像
  • 镜像运行在容器中,docker 中可以运行多个互补干扰的容器,可以将同一个镜像在多个容器中进行运行
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   About an hour ago   Up 3 seconds        8080/tcp            myTomcat
[root@localhost ~]# docker stop myTomcat
myTomcat
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
1cbabce49b84        tomcat:8.5.32       "catalina.sh run"   About an hour ago   Exited (143) 3 seconds ago                       myTomcat
[root@localhost ~]# docker rm 66cbabce49b8
1cbabce49b84
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# 

端口映射

使用命令:docker run --name container-name:tag -d -p 服务器端口:Docker 端口 image-name

--name:自定义容器名,不指定时,docker 会自动生成一个名称
-d:表示后台运行容器
image-name:指定运行的镜像名称以及 Tag 
-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问

  • 如下所示:服务器防火墙先开放了 8080、8090 端口,否则防火墙不开放端口的话,从其它电脑也是无法访问服务器的
  • 然后 运行了 两个容器,容器名称分别指定为 "myTomcat1"、"myTomcat2"、两个容器中都是同一个 docker.io/tomcat:8.5.32 镜像
  • 两个容器都指定了端口映射,分别是8080、8090 ,都会转发到 Docker 容器内部
[root@localhost ~]# firewall-cmd --zone=public --list-port
9876/tcp 8090/tcp 80/tcp 8080/tcp
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    8.5.32              5808f01b11bf        38 hours ago        463 MB
[root@localhost ~]# docker run --name myTtomcat1 -d -p 8080:8080 tomcat:8.5.32 
d67cca0aacf7cc4a91112721769ba56aadbe55e8e78ff6749528cf5cecb38f6e
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
d67cca0aacf7        tomcat:8.5.32       "catalina.sh run"   19 seconds ago      Up 17 seconds       0.0.0.0:8080->8080/tcp   myTtomcat1
[root@localhost ~]# docker run --name myTtomcat2 -d -p 8090:8080 tomcat:8.5.32 
0f6df57a7fa189710c0d2c3088334a7ff725c7e57eea71220ffb67049eaf5f5a
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
0f6df57a7fa1        tomcat:8.5.32       "catalina.sh run"   3 seconds ago       Up 1 second         0.0.0.0:8090->8080/tcp   myTtomcat2
d67cca0aacf7        tomcat:8.5.32       "catalina.sh run"   53 seconds ago      Up 51 seconds       0.0.0.0:8080->8080/tcp   myTtomcat1
[root@localhost ~]#

启动成功之后,ip addr show 查一下服务器 ip 地址( 39.108.62.247),然后就能从物理机上访问了

[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ea:9e:7f brd ff:ff:ff:ff:ff:ff
    inet 39.108.62.247/24 brd 192.168.58.255 scope global noprefixroute dynamic eno16777736
       valid_lft 1771sec preferred_lft 1771sec
    inet6 fe80::20c:29ff:feea:9e7f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:9d:e0:f0:14 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:9dff:fee0:f014/64 scope link 
       valid_lft forever preferred_lft forever
9: veth8675b32@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether be:8c:64:6e:2b:08 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::bc8c:64ff:fe6e:2b08/64 scope link 
       valid_lft forever preferred_lft forever
11: vethb98436b@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 26:ae:79:9a:05:7b brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::24ae:79ff:fe9a:57b/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 

容器日志

使用 docker logs container-name/container-id 命令 可以查看容器日志信息,指定容器名或者 容器 id 即可

命令说明:

  • -f : 跟踪日志输出

  • --since :显示某个开始时间的所有日志

  • -t : 显示时间戳

  • --tail :仅列出最新N条容器日志

查看容器详情

docker inspect 容器ID
docker logs 容器ID 查看日志

docker logs -f --tail 1000 容器ID