部署Nginx

  • 搜索镜像
# 搜索镜像
[root@iZwz9a69mvjujb826ezp71Z ~]# docker search nginx
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        17536     [OK]
linuxserver/nginx                                 An Nginx container, brought to you by LinuxS…   178
bitnami/nginx                                     Bitnami nginx Docker Image                      141                  [OK]
ubuntu/nginx                                      Nginx, a high-performance reverse proxy & we…   63
bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Contr…   20                   [OK]
rancher/nginx-ingress-controller                                                                  11
webdevops/nginx                                   Nginx container                                 10                   [OK]
ibmcom/nginx-ingress-controller                   Docker Image for IBM Cloud Private-CE (Commu…   4
bitnami/nginx-ldap-auth-daemon                                                                    3
bitnami/nginx-exporter                                                                            3
vmware/nginx                                                                                      2
rancher/nginx-ingress-controller-defaultbackend                                                   2
rapidfort/nginx                                   RapidFort optimized, hardened image for NGINX   2
kasmweb/nginx                                     An Nginx image based off nginx:alpine and in…   2
rancher/nginx                                                                                     2
bitnami/nginx-intel                                                                               1
wallarm/nginx-ingress-controller                  Kubernetes Ingress Controller with Wallarm e…   1
vmware/nginx-photon                                                                               1
rancher/nginx-conf                                                                                0
rapidfort/nginx-ib                                RapidFort optimized, hardened image for NGIN…   0
ibmcom/nginx-ingress-controller-ppc64le           Docker Image for IBM Cloud Private-CE (Commu…   0
rancher/nginx-ssl                                                                                 0
continuumio/nginx-ingress-ws                                                                      0
rancher/nginx-ingress-controller-amd64                                                            0
ibmcom/nginx-ppc64le                              Docker image for nginx-ppc64le                  0
  • 下载镜像
[root@iZwz9a69mvjujb826ezp71Z ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 查看下本地镜像
[root@iZwz9a69mvjujb826ezp71Z ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   9 months ago    141MB
centos       latest    5d0da3dc9764   13 months ago   231MB
  • 创建并运行镜像
[root@iZwz9a69mvjujb826ezp71Z ~]# docker run -d --name nginx01 -p 3344:80 nginx
fc4b4681cc23c4ab61e9498191c4a2df8338cdc460cd6f3832a6f487c0ea622e
# -d 后台运行
# -name 给容器命名
# -p 指定端口 [主机端口]:[容器内端口]
# 查看镜像列表
[root@iZwz9a69mvjujb826ezp71Z ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                  NAMES
fc4b4681cc23   nginx     "/docker-entrypoint.…"   7 seconds ago   Up 5 seconds   0.0.0.0:3344->80/tcp   nginx01
[root@iZwz9a69mvjujb826ezp71Z ~]#
  • 查看是否运行成功
  • 进入到容器中查看
# 以exec命令回到容器中
[root@iZwz9a69mvjujb826ezp71Z ~]# docker exec -it fc4b4681cc23 /bin/bash
root@8b25ee190c6c:/# ls
bin   dev          docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc           lib   media  opt  root  sbin  sys  usr# 进入到/usr/share/nginx/html/,这就是静态资源的文件夹
root@8b25ee190c6c:/# cd /usr/share/nginx/html/
root@8b25ee190c6c:/usr/share/nginx/html# ls
50x.html  index.html# 进入到etc/nginx/,配置文件nginx.conf就在这个文件夹下
root@8b25ee190c6c:/# cd etc/nginx/
root@8b25ee190c6c:/etc/nginx# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
root@8b25ee190c6c:/etc/nginx# cat nginx.conf user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}# 进入到/var/log/nginx文件夹中,这里存放的就是nginx的日志文件
root@7f93e0a9e5a6:/etc# cd /var/log/nginx
root@7f93e0a9e5a6:/var/log/nginx# ls
access.log  error.log
  • 重新启动一个nginx,将配置文件夹、静态资源文件夹、日志文件夹挂载出来
# 这里如果宿主机没有对应的文件夹,请先创建文件夹
[root@iZwz9a69mvjujb826ezp71Z nginx]# docker run -d --name nginx -p 80:80 -v /usr/local/nginx/conf:/etc/nginx -v /usr/local/nginx/html:/usr/nginx/html -v /usr/local/nginx/logs:/var/log/nginx nginx
  • 登录网站验证

部署Tomcat

  • 官方运行建议 docker run -it --rm -p 8888:8080 tomcat:9.0

    • 我们之前的启动都是后台,停止容器之后,容器还是可以查到,而docker run -it -rm,一般用来测试,用完就删除
# 官方方式启动
[root@iZwz9a69mvjujb826ezp71Z ~]# docker run -it --rm -p 8888:8080 tomcat:9.0
Unable to find image 'tomcat:9.0' locally
9.0: Pulling from library/tomcat
0e29546d541c: Pull complete
9b829c73b52b: Pull complete
cb5b7ae36172: Pull complete
6494e4811622: Pull complete
668f6fcc5fa5: Pull complete
dc120c3e0290: Pull complete
8f7c0eebb7b1: Pull complete
77b694f83996: Pull complete
7662046c36cb: Pull complete
b93639122cb4: Pull complete
Digest: sha256:cd96d4f7d3f5fc4d3bc1622ec678207087b8215d55021a607ecaefba80b403ea
Status: Downloaded newer image for tomcat:9.0
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/openjdk-11
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Oct-2022 14:51:40.604 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.56
18-Oct-2022 14:51:40.613 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Dec 2 2021 14:30:07 UTC
18-Oct-2022 14:51:40.614 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.56.0
18-Oct-2022 14:51:40.616 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
18-Oct-2022 14:51:40.617 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.19.34-11.al7.x86_64
18-Oct-2022 14:51:40.617 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
18-Oct-2022 14:51:40.619 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-11
18-Oct-2022 14:51:40.620 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.13+8
18-Oct-2022 14:51:40.620 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
18-Oct-2022 14:51:40.621 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
18-Oct-2022 14:51:40.622 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
18-Oct-2022 14:51:40.654 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Oct-2022 14:51:40.655 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Oct-2022 14:51:40.655 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
18-Oct-2022 14:51:40.656 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
18-Oct-2022 14:51:40.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Oct-2022 14:51:40.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
18-Oct-2022 14:51:40.658 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Oct-2022 14:51:40.658 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Oct-2022 14:51:40.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Oct-2022 14:51:40.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Oct-2022 14:51:40.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
18-Oct-2022 14:51:40.661 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
18-Oct-2022 14:51:40.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
18-Oct-2022 14:51:40.663 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
18-Oct-2022 14:51:40.707 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].
18-Oct-2022 14:51:40.709 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
18-Oct-2022 14:51:40.710 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
18-Oct-2022 14:51:40.762 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k  25 Mar 2021]
18-Oct-2022 14:51:41.852 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
18-Oct-2022 14:51:41.934 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1976] milliseconds
18-Oct-2022 14:51:42.193 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Oct-2022 14:51:42.195 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.56]
18-Oct-2022 14:51:42.247 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
18-Oct-2022 14:51:42.293 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [356] milliseconds
^C18-Oct-2022 14:52:12.582 INFO [Thread-2] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
18-Oct-2022 14:52:12.602 INFO [Thread-2] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
18-Oct-2022 14:52:12.609 INFO [Thread-2] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
18-Oct-2022 14:52:12.617 INFO [Thread-2] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
# ctrl + c 退出后查询运行中容器,发现没有tomcat
[root@iZwz9a69mvjujb826ezp71Z ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
fc4b4681cc23   nginx     "/docker-entrypoint.…"   30 minutes ago   Up 30 minutes   0.0.0.0:3344->80/tcp   nginx01
[root@iZwz9a69mvjujb826ezp71Z ~]#
  • 下载启动
# 下载tomcat
[root@iZwz9a69mvjujb826ezp71Z ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Already exists
9b829c73b52b: Already exists
cb5b7ae36172: Already exists
6494e4811622: Already exists
668f6fcc5fa5: Already exists
dc120c3e0290: Already exists
8f7c0eebb7b1: Already exists
77b694f83996: Already exists
0f611256ec3a: Pull complete
4f25def12f23: Pull complete
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
# 查看下载好的镜像
[root@iZwz9a69mvjujb826ezp71Z ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   9 months ago    141MB
tomcat       9.0       b8e65a4d736d   9 months ago    680MB
tomcat       latest    fb5657adc892   9 months ago    680MB
centos       latest    5d0da3dc9764   13 months ago   231MB
# 创建并启动容器
[root@iZwz9a69mvjujb826ezp71Z ~]# docker run -d --name tomcat01 -p 3344:8080 tomcat
96ccd7b2ce91f7226fbe20d078463f2ecc2503420d44f919fd382b2871489ac6
# 查看运行容器列表
[root@iZwz9a69mvjujb826ezp71Z ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                    NAMES
96ccd7b2ce91   tomcat    "catalina.sh run"   14 seconds ago   Up 12 seconds   0.0.0.0:3344->8080/tcp   tomcat01
  • 运行成功,访问下3344端口,发现部署成功,但是404
  • 原因:docker官方的tomcat是阉割的,进入容器查看
# 进入容器查看
[root@iZwz9a69mvjujb826ezp71Z ~]# docker exec -it 96ccd7b2ce91 /bin/bash
# 查看文件夹列表,发现有webapps和webapps.dist
root@96ccd7b2ce91:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md  RUNNING.txt  conf  logs        temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work
# 进入webapps下查看,发现是空的
root@96ccd7b2ce91:/usr/local/tomcat# cd webapps
root@96ccd7b2ce91:/usr/local/tomcat/webapps# ls
root@96ccd7b2ce91:/usr/local/tomcat/webapps#
# 进入webapps.dist下查看,发现有应该在webapps的文件
root@96ccd7b2ce91:/usr/local/tomcat/webapps# cd ..
root@96ccd7b2ce91:/usr/local/tomcat# cd webapps.dist/
root@96ccd7b2ce91:/usr/local/tomcat/webapps.dist# ls
ROOT  docs  examples  host-manager  manager
# 将webapps.dist文件夹下的文件拷贝到webapps
root@96ccd7b2ce91:/usr/local/tomcat/webapps.dist#
root@96ccd7b2ce91:/usr/local/tomcat/webapps.dist# cd ..
root@96ccd7b2ce91:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@96ccd7b2ce91:/usr/local/tomcat# cd webapps
root@96ccd7b2ce91:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
  • 刷新界面,发现不是404了

部署ES

  • es暴露的端口多
  • es十分耗内存
  • es的数据一般需要放置到安全目录!挂载
  • –net somenetwork ? 网络配置
  • 运行命令
# 下载启动elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

部署MySQL

  • 思考:MySQL的数据持久化的问题
  • 官方启动命令:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
[root@VM-0-10-centos ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
0ceb82207cd7: Pull complete
37f2405cae96: Pull complete
e2482e017e53: Pull complete
70deed891d42: Pull complete
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7# 运行容器时,需要做数据挂载
# 安装启动MySQL的时候需要配置密码的 -e MYSQL_ROOT_PASSWORD=123456 就是将密码设置为123456
[root@VM-0-10-centos ~]# docker run -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
2022-10-22 11:42:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
2022-10-22 11:42:56+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-10-22 11:42:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
2022-10-22 11:42:56+00:00 [Note] [Entrypoint]: Initializing database files
mysqld: Out of memory (Needed 4294967200 bytes)
......
2022-10-22T11:43:06.614841Z 0 [Note] Event Scheduler: Loaded 0 events
2022-10-22T11:43:06.615231Z 0 [Note] mysqld: ready for connections.
Version: '5.7.36'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)# 查看服务器的/home/data文件夹
[root@VM-0-10-centos ~]# cd /home/data
[root@VM-0-10-centos data]# ls
auto.cnf    client-cert.pem  ibdata1      ibtmp1              private_key.pem  server-key.pem
ca-key.pem  client-key.pem   ib_logfile0  mysql               public_key.pem   sys
ca.pem      ib_buffer_pool   ib_logfile1  performance_schema  server-cert.pem
  • 测试:用GUI工具远程连接MySQL之后创建一个test库
  • 回到服务器上查看/home/data文件夹
# 多了test文件夹,这是test库的数据
[root@VM-0-10-centos data]# ls
auto.cnf    client-cert.pem  ibdata1      ibtmp1              private_key.pem  server-key.pem
ca-key.pem  client-key.pem   ib_logfile0  mysql               public_key.pem   sys
ca.pem      ib_buffer_pool   ib_logfile1  performance_schema  server-cert.pem  test
  • 卸载MySQL容器,数据文件还在
# 卸载MySQL容器
[root@VM-0-10-centos data]# docker rm -f mysql01
mysql01
[root@VM-0-10-centos data]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES# 查看数据文件,数据文件还在
[root@VM-0-10-centos data]# ls
auto.cnf    client-cert.pem  ibdata1      ibtmp1              private_key.pem  server-key.pem
ca-key.pem  client-key.pem   ib_logfile0  mysql               public_key.pem   sys
ca.pem      ib_buffer_pool   ib_logfile1  performance_schema  server-cert.pem  test

构建自己的centOS

# 创建dockerfile文件
[root@VM-0-10-centos ~]# cd /home/
[root@VM-0-10-centos home]# ls
data  docker-test-volume  mysql
[root@VM-0-10-centos home]# clear
[root@VM-0-10-centos home]# mkdir dockerfile
[root@VM-0-10-centos home]# ls
data  dockerfile  docker-test-volume  mysql
[root@VM-0-10-centos home]# cd dockerfile/
[root@VM-0-10-centos dockerfile]# ls
[root@VM-0-10-centos dockerfile]# vim mydockerfile# 编写dockerfile文件
FROM centos:7MAINTAINER suanbai<76417647@qq.com>ENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vim
RUN yum -y install net-toolsEXPOSE 80# 下面前两个CMD是不生效的,只有最后一行CMD是生效的
CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash# 通过文件构建镜像
[root@VM-0-10-centos dockerfile]# docker build -f mydockerfile -t mycentos:0.1 .
Sending build context to Docker daemon  2.048kB
Step 1/10 : FROM centos---> 5d0da3dc9764
Step 2/10 : MAINTAINER suanbai<76417647@qq.com>---> Running in bdd6ddb7ed00
Removing intermediate container bdd6ddb7ed00---> e1c11a680505
Step 3/10 : ENV MYPATH /usr/local---> Running in 2226c278e873
Removing intermediate container 2226c278e873---> 3498e2e43758
Step 4/10 : WORKDIR $ MYPATH---> Running in 5af02223ab78
Removing intermediate container 5af02223ab78---> e2287f1dc69e
Step 5/10 : RUN yum -y install vim---> Running in a96b6819d273
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
CentOS Linux 8 - AppStream                       73  B/s |  38  B     00:00
The command '/bin/sh -c yum -y install vim' returned a non-zero code: 1
[root@VM-0-10-centos dockerfile]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED              SIZE
<none>          <none>    e2287f1dc69e   About a minute ago   231MB
sunbai/centos   1.0       5571c282f543   7 hours ago          231MB
nginx           latest    605c77e624dd   9 months ago         141MB
mysql           5.7       c20987f18b13   10 months ago        448MB
centos          latest    5d0da3dc9764   13 months ago        231MB
[root@VM-0-10-centos dockerfile]# vim mydockerfile
[root@VM-0-10-centos dockerfile]# docker build -f mydockerfile -t mycentos:0.1 .
Sending build context to Docker daemon  2.048kB
Step 1/10 : FROM centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7---> eeb6ee3f44bd
Step 2/10 : MAINTAINER suanbai<76417647@qq.com>---> Running in 1b92bb747079
Removing intermediate container 1b92bb747079---> 1cc0d4f06453
Step 3/10 : ENV MYPATH /usr/local---> Running in 7754179a8c48
Removing intermediate container 7754179a8c48---> d18e2e898aee
Step 4/10 : WORKDIR $ MYPATH---> Running in 7ffdc5253440
Removing intermediate container 7ffdc5253440---> b430a2aa285b
Step 5/10 : RUN yum -y install vim---> Running in b83f42ac8d51
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed
---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64
---> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64
---> Package which.x86_64 0:2.20-7.el7 will be installed
--> Running transaction check
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
---> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
--> Running transaction check
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved================================================================================Package                    Arch       Version                Repository   Size
================================================================================
Installing:vim-enhanced               x86_64     2:7.4.629-8.el7_9      updates     1.1 M
Installing for dependencies:gpm-libs                   x86_64     1.20.7-6.el7           base         32 kgroff-base                 x86_64     1.22.2-8.el7           base        942 kperl                       x86_64     4:5.16.3-299.el7_9     updates     8.0 Mperl-Carp                  noarch     1.26-244.el7           base         19 kperl-Encode                x86_64     2.51-7.el7             base        1.5 Mperl-Exporter              noarch     5.68-3.el7             base         28 kperl-File-Path             noarch     2.09-2.el7             base         26 kperl-File-Temp             noarch     0.23.01-3.el7          base         56 kperl-Filter                x86_64     1.49-3.el7             base         76 kperl-Getopt-Long           noarch     2.40-3.el7             base         56 kperl-HTTP-Tiny             noarch     0.033-3.el7            base         38 kperl-PathTools             x86_64     3.40-5.el7             base         82 kperl-Pod-Escapes           noarch     1:1.04-299.el7_9       updates      52 kperl-Pod-Perldoc           noarch     3.20-4.el7             base         87 kperl-Pod-Simple            noarch     1:3.28-4.el7           base        216 kperl-Pod-Usage             noarch     1.63-3.el7             base         27 kperl-Scalar-List-Utils     x86_64     1.27-248.el7           base         36 kperl-Socket                x86_64     2.010-5.el7            base         49 kperl-Storable              x86_64     2.45-3.el7             base         77 kperl-Text-ParseWords       noarch     3.29-4.el7             base         14 kperl-Time-HiRes            x86_64     4:1.9725-3.el7         base         45 kperl-Time-Local            noarch     1.2300-2.el7           base         24 kperl-constant              noarch     1.27-2.el7             base         19 kperl-libs                  x86_64     4:5.16.3-299.el7_9     updates     690 kperl-macros                x86_64     4:5.16.3-299.el7_9     updates      44 kperl-parent                noarch     1:0.225-244.el7        base         12 kperl-podlators             noarch     2.5.1-3.el7            base        112 kperl-threads               x86_64     1.87-4.el7             base         49 kperl-threads-shared        x86_64     1.43-6.el7             base         39 kvim-common                 x86_64     2:7.4.629-8.el7_9      updates     5.9 Mvim-filesystem             x86_64     2:7.4.629-8.el7_9      updates      11 kwhich                      x86_64     2.20-7.el7             base         41 kTransaction Summary
================================================================================
Install  1 Package (+32 Dependent packages)Total download size: 19 M
Installed size: 63 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/perl-Carp-1.26-244.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for perl-Carp-1.26-244.el7.noarch.rpm is not installed
Public key for perl-Pod-Escapes-1.04-299.el7_9.noarch.rpm is not installed
--------------------------------------------------------------------------------
Total                                              9.5 MB/s |  19 MB  00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5Package    : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : gpm-libs-1.20.7-6.el7.x86_64                                1/33Installing : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                     2/33 Installing : 2:vim-common-7.4.629-8.el7_9.x86_64                         3/33 Installing : which-2.20-7.el7.x86_64                                     4/33install-info: No such file or directory for /usr/share/info/which.info.gzInstalling : groff-base-1.22.2-8.el7.x86_64                              5/33 Installing : 1:perl-parent-0.225-244.el7.noarch                          6/33 Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                           7/33 Installing : perl-podlators-2.5.1-3.el7.noarch                           8/33 Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                          9/33 Installing : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   10/33 Installing : perl-Encode-2.51-7.el7.x86_64                              11/33 Installing : perl-Text-ParseWords-3.29-4.el7.noarch                     12/33 Installing : perl-Pod-Usage-1.63-3.el7.noarch                           13/33 Installing : 4:perl-macros-5.16.3-299.el7_9.x86_64                      14/33 Installing : perl-Storable-2.45-3.el7.x86_64                            15/33 Installing : perl-Exporter-5.68-3.el7.noarch                            16/33 Installing : perl-constant-1.27-2.el7.noarch                            17/33 Installing : perl-Socket-2.010-5.el7.x86_64                             18/33 Installing : perl-Time-Local-1.2300-2.el7.noarch                        19/33 Installing : perl-Carp-1.26-244.el7.noarch                              20/33 Installing : perl-PathTools-3.40-5.el7.x86_64                           21/33 Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 22/33 Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                        23/33 Installing : perl-File-Temp-0.23.01-3.el7.noarch                        24/33 Installing : perl-File-Path-2.09-2.el7.noarch                           25/33 Installing : perl-threads-shared-1.43-6.el7.x86_64                      26/33 Installing : perl-threads-1.87-4.el7.x86_64                             27/33 Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 Installing : perl-Filter-1.49-3.el7.x86_64                              29/33 Installing : 4:perl-libs-5.16.3-299.el7_9.x86_64                        30/33Installing : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 Installing : 4:perl-5.16.3-299.el7_9.x86_64                             32/33 Installing : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                      33/33 Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                           1/33 Verifying  : perl-threads-shared-1.43-6.el7.x86_64                       2/33 Verifying  : perl-Storable-2.45-3.el7.x86_64                             3/33 Verifying  : groff-base-1.22.2-8.el7.x86_64                              4/33 Verifying  : perl-Exporter-5.68-3.el7.noarch                             5/33 Verifying  : perl-constant-1.27-2.el7.noarch                             6/33 Verifying  : perl-PathTools-3.40-5.el7.x86_64                            7/33 Verifying  : 4:perl-macros-5.16.3-299.el7_9.x86_64                       8/33 Verifying  : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                       9/33 Verifying  : 1:perl-parent-0.225-244.el7.noarch                         10/33 Verifying  : perl-Socket-2.010-5.el7.x86_64                             11/33 Verifying  : which-2.20-7.el7.x86_64                                    12/33 Verifying  : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                    13/33 Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                        14/33 Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                        15/33 Verifying  : perl-Time-Local-1.2300-2.el7.noarch                        16/33 Verifying  : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   17/33 Verifying  : perl-Carp-1.26-244.el7.noarch                              18/33 Verifying  : 2:vim-common-7.4.629-8.el7_9.x86_64                        19/33 Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 20/33 Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                           21/33 Verifying  : perl-Encode-2.51-7.el7.x86_64                              22/33 Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                         23/33 Verifying  : perl-podlators-2.5.1-3.el7.noarch                          24/33 Verifying  : 4:perl-5.16.3-299.el7_9.x86_64                             25/33 Verifying  : perl-File-Path-2.09-2.el7.noarch                           26/33 Verifying  : perl-threads-1.87-4.el7.x86_64                             27/33 Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 Verifying  : gpm-libs-1.20.7-6.el7.x86_64                               29/33 Verifying  : perl-Filter-1.49-3.el7.x86_64                              30/33 Verifying  : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                     32/33 Verifying  : 4:perl-libs-5.16.3-299.el7_9.x86_64                        33/33 Installed:vim-enhanced.x86_64 2:7.4.629-8.el7_9                                         Dependency Installed:gpm-libs.x86_64 0:1.20.7-6.el7                                                groff-base.x86_64 0:1.22.2-8.el7                                              perl.x86_64 4:5.16.3-299.el7_9                                                perl-Carp.noarch 0:1.26-244.el7                                               perl-Encode.x86_64 0:2.51-7.el7                                               perl-Exporter.noarch 0:5.68-3.el7                                             perl-File-Path.noarch 0:2.09-2.el7                                            perl-File-Temp.noarch 0:0.23.01-3.el7                                         perl-Filter.x86_64 0:1.49-3.el7                                               perl-Getopt-Long.noarch 0:2.40-3.el7                                          perl-HTTP-Tiny.noarch 0:0.033-3.el7                                           perl-PathTools.x86_64 0:3.40-5.el7                                            perl-Pod-Escapes.noarch 1:1.04-299.el7_9                                      perl-Pod-Perldoc.noarch 0:3.20-4.el7                                          perl-Pod-Simple.noarch 1:3.28-4.el7                                           perl-Pod-Usage.noarch 0:1.63-3.el7                                            perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                                  perl-Socket.x86_64 0:2.010-5.el7                                              perl-Storable.x86_64 0:2.45-3.el7                                             perl-Text-ParseWords.noarch 0:3.29-4.el7                                      perl-Time-HiRes.x86_64 4:1.9725-3.el7                                         perl-Time-Local.noarch 0:1.2300-2.el7                                         perl-constant.noarch 0:1.27-2.el7                                             perl-libs.x86_64 4:5.16.3-299.el7_9                                           perl-macros.x86_64 4:5.16.3-299.el7_9                                         perl-parent.noarch 1:0.225-244.el7                                            perl-podlators.noarch 0:2.5.1-3.el7                                           perl-threads.x86_64 0:1.87-4.el7                                              perl-threads-shared.x86_64 0:1.43-6.el7                                       vim-common.x86_64 2:7.4.629-8.el7_9                                           vim-filesystem.x86_64 2:7.4.629-8.el7_9                                       which.x86_64 0:2.20-7.el7                                                     Complete!
Removing intermediate container b83f42ac8d51---> 5316756f1b5e
Step 6/10 : RUN yum -y install net-tools---> Running in 9064f7db9162
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved================================================================================Package         Arch         Version                          Repository  Size
================================================================================
Installing:net-tools       x86_64       2.0-0.25.20131004git.el7         base       306 kTransaction Summary
================================================================================
Install  1 PackageTotal download size: 306 k
Installed size: 917 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : net-tools-2.0-0.25.20131004git.el7.x86_64                    1/1Verifying  : net-tools-2.0-0.25.20131004git.el7.x86_64                    1/1 Installed:net-tools.x86_64 0:2.0-0.25.20131004git.el7                                   Complete!
Removing intermediate container 9064f7db9162---> 563bf211d346
Step 7/10 : EXPOSE 80---> Running in 0af42b75890c
Removing intermediate container 0af42b75890c---> 669f9d6d4596
Step 8/10 : CMD echo $MYPATH---> Running in 23e8185ca95c
Removing intermediate container 23e8185ca95c---> 4238b045f568
Step 9/10 : CMD echo "----end----"---> Running in 4057a4bec344
Removing intermediate container 4057a4bec344---> a9be56ade9f7
Step 10/10 : CMD /bin/bash---> Running in b0381ec55d01
Removing intermediate container b0381ec55d01---> 13db9c2c8947
Successfully built 13db9c2c8947
Successfully tagged mycentos:0.1# 测试运行
[root@VM-0-10-centos dockerfile]# docker run -it mycentos:0.1# 进来直接是之前设定好的工作目录/usr/local
[root@c2f564a56533 local]# pwd
/usr/local# ifconfig能用了
[root@c2f564a56533 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.5  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:05  txqueuelen 0  (Ethernet)RX packets 12  bytes 936 (936.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0# vim也能用了
[root@c2f564a56533 local]# vim test

构建自己的Tomcat

  • 准备镜像文件tomcat压缩包,jdk压缩包
[root@VM-0-10-centos home]# ll
total 157536
-rw-r--r-- 1 root    root  11597709 Oct 24 20:19 apache-tomcat-9.0.68.tar.gz
drwxr-xr-x 6 unbound root      4096 Oct 22 20:42 data
drwxr-xr-x 2 root    root      4096 Oct 23 23:01 dockerfile
drwxr-xr-x 2 root    root      4096 Oct 23 15:56 docker-test-volume
-rw-r--r-- 1 root    root 149697219 Oct 24 20:29 jdk-8u351-linux-x64.tar.gz
drwxr-xr-x 3 root    root      4096 Oct 22 19:42 mysql
  • 编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,就不需要 -f 指定了
[root@VM-0-10-centos tomcat]# vim Dockerfile
[root@VM-0-10-centos tomcat]# cat Dockerfile
FROM centos:7MAINTAINER sanbai<763417647@qq.com>ADD jdk-8u351-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.68.tar.gz /usr/local/RUN yum -y install vimENV MYPATH /usr/localWORKDIR $MYPATHENV JAVA_HOME /usr/local/jdk1.8.0_351ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.68ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.68ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-9.0.68/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.68/bin/logs/catalina.out
  • 构建镜像
# 下面是完整命令,但是由于文件名是Dockerfile,所以不需要 -f Dockerfile
# docker build -f Dockerfile -t diytomcat .
[root@VM-0-10-centos tomcat]# docker build -t diytomcat .
Sending build context to Docker daemon  161.3MB
Step 1/14 : FROM centos:7
......
Successfully built c80000b9b2d3
Successfully tagged diytomcat:latest# 查看一下镜像列表,自己的镜像构建成功了
[root@VM-0-10-centos tomcat]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
diytomcat       latest    c80000b9b2d3   4 minutes ago   834MB
mycentos        0.1       13db9c2c8947   23 hours ago    625MB
<none>          <none>    e2287f1dc69e   23 hours ago    231MB
sunbai/centos   1.0       5571c282f543   30 hours ago    231MB
nginx           latest    605c77e624dd   9 months ago    141MB
mysql           5.7       c20987f18b13   10 months ago   448MB
centos          7         eeb6ee3f44bd   13 months ago   204MB
centos          latest    5d0da3dc9764   13 months ago   231MB
  • 启动镜像
# 启动时将日志文件和webapps下的test文件夹挂载到主机中
# 下面这行脚本可能使得容器内的tomcat启动失败,tomcat启动日志出现 failed - unable to allocate file descriptor table - out of memorylibrary initialization 错误
# docker run -d -p 8080:8080 --name sunbai -v /home/sunbai/build/tomcat/test:/usr/local/apache-tomcat-9.0.68/webapps/test -v /home/sunbai/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.68/logs diytomcat
# bf93867bc633c77c347419471b04a908805400268c86eb5ee703b198cf20b2c6# 原因,容器内nofile数值设置过大
# 解决方案,修改docker run启动参数 --ulimit nofile=1024:1024 以限制启动参数
[root@VM-0-10-centos tomcatlogs]# docker run -d --ulimit nofile=1024:1024 -p 8080:8080 --name sunbai -v /home/sunbai/build/tomcat/test:/usr/local/apache-tomcat-9.0.68/webapps/test -v /home/sunbai/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.68/logs diytomcat
4f7fbd29e45c383b5214b9311b490e2b2e526ece3e5a3729aa5db1d2dffae5d9# 查看当前启动的容器,容器运行中
[root@VM-0-10-centos tomcat]# docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                       NAMES
bf93867bc633   diytomcat           "/bin/sh -c '/usr/lo…"   52 seconds ago   Up 50 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   sunbai
e50ac9d277f8   sunbai/centos:1.0   "/bin/sh -c /bin/bash"   28 hours ago     Up 28 hours                                                 docker01
bb042de99b86   nginx               "/docker-entrypoint.…"   32 hours ago     Up 32 hours     0.0.0.0:49154->80/tcp, :::49154->80/tcp     nginx02
3d0332f678c3   nginx               "/docker-entrypoint.…"   32 hours ago     Up 32 hours     0.0.0.0:49153->80/tcp, :::49153->80/tcp     nginx01# 到/home/sunbai/build/tomcat目录下查看,生成了test文件夹和tomcatlogs日志文件
[root@VM-0-10-centos tomcat]# cd /home/sunbai/build/tomcat
[root@VM-0-10-centos tomcat]# ls
test  tomcatlogs
  • 进入容器查看
[root@VM-0-10-centos tomcat]# docker exec -it bf93867bc633 /bin/bash
[root@bf93867bc633 local]# ls
apache-tomcat-9.0.68  bin  etc  games  include  jdk1.8.0_351  lib  lib64  libexec  sbin  share  src
[root@bf93867bc633 local]# pwd
/usr/local
[root@bf93867bc633 local]# cd apache-tomcat-9.0.68/
[root@bf93867bc633 apache-tomcat-9.0.68]# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs  webapps
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   temp  work
  • 到/home/sunbai/build/tomcat/tomcatlogs/文件夹下查看下启动日志
[root@VM-0-10-centos tomcat]# cd /home/sunbai/build/tomcat/tomcatlogs/
[root@VM-0-10-centos tomcatlogs]# ls
catalina.2022-10-24.log  host-manager.2022-10-24.log  localhost_access_log.2022-10-24.txt
catalina.out             localhost.2022-10-24.log     manager.2022-10-24.log
[root@VM-0-10-centos tomcatlogs]# cat catalina.out
24-Oct-2022 15:08:23.161 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.68
......
24-Oct-2022 15:08:24.997 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
24-Oct-2022 15:08:25.018 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1028] milliseconds
  • 访问下这个Tomcat,成功了
  • 往/home/sunbai/build/tomcat/test添加HTML文件
[root@VM-0-10-centos ~]# cd /home/sunbai/build/tomcat/test/
[root@VM-0-10-centos test]# ls
[root@VM-0-10-centos test]# vim index.html
[root@VM-0-10-centos test]# cat index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body>
</html>
  • 访问一下这个页面,成功

Redis集群部署实战

  • 创建redis网卡
[root@VM-0-10-centos ~]# docker network create redis --subnet 172.38.0.0/16
fee2378bf266a29c9745d53cc165cca8f285b37a9175c4b661ebfcafa8bb96ca
[root@VM-0-10-centos ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
72b5fd5f989d   bridge    bridge    local
ea4002e14ec1   host      host      local
46cac985389d   mynet     bridge    local
221aaac7ba29   none      null      local
fee2378bf266   redis     bridge    local
  • 通过脚本创建六个redis配置
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
  • 启动redis
# 第一个redis
[root@VM-0-10-centos ~]# docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
Unable to find image 'redis:5.0.9-alpine3.11' locally
5.0.9-alpine3.11: Pulling from library/redis
cbdbe7a5bc2a: Pull complete
dc0373118a0d: Pull complete
cfd369fe6256: Pull complete
3e45770272d9: Pull complete
558de8ea3153: Pull complete
a2c652551612: Pull complete
Digest: sha256:83a3af36d5e57f2901b4783c313720e5fa3ecf0424ba86ad9775e06a9a5e35d0
Status: Downloaded newer image for redis:5.0.9-alpine3.11
fb849a84983b2d8fbd55ea5276fbab26d47495b1ed3128b12644a72e65a3d353# 第二个redis
docker run -p 6372:6379 -p 16372:16379 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 第三个redis
docker run -p 6373:6379 -p 16373:16379 --name redis-3 \
-v /mydata/redis/node-3/data:/data \
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 第四个redis
docker run -p 6374:6379 -p 16374:16379 --name redis-4 \
-v /mydata/redis/node-4/data:/data \
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 第五个redis
docker run -p 6375:6379 -p 16375:16379 --name redis-5 \
-v /mydata/redis/node-5/data:/data \
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 第六个redis
docker run -p 6376:6379 -p 16376:16379 --name redis-6 \
-v /mydata/redis/node-6/data:/data \
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 查看一下docker容器列表
[root@VM-0-10-centos ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                                                                      NAMES
c46ce8b66719   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   3 seconds ago        Up 2 seconds        0.0.0.0:6376->6379/tcp, :::6376->6379/tcp, 0.0.0.0:16376->16379/tcp, :::16376->16379/tcp   redis-6
690559f81f51   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   16 seconds ago       Up 16 seconds       0.0.0.0:6375->6379/tcp, :::6375->6379/tcp, 0.0.0.0:16375->16379/tcp, :::16375->16379/tcp   redis-5
a166b898a334   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   28 seconds ago       Up 28 seconds       0.0.0.0:6374->6379/tcp, :::6374->6379/tcp, 0.0.0.0:16374->16379/tcp, :::16374->16379/tcp   redis-4
bf6fa2c54294   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   56 seconds ago       Up 56 seconds       0.0.0.0:6373->6379/tcp, :::6373->6379/tcp, 0.0.0.0:16373->16379/tcp, :::16373->16379/tcp   redis-3
220c8d73225c   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6372->6379/tcp, :::6372->6379/tcp, 0.0.0.0:16372->16379/tcp, :::16372->16379/tcp   redis-2
7d7306f91007   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6371->6379/tcp, :::6371->6379/tcp, 0.0.0.0:16371->16379/tcp, :::16371->16379/tcp   redis-1
  • 配置Redis集群信息
# 进入redis-1,查看基本信息
[root@VM-0-10-centos ~]# docker exec -it redis-1 /bin/sh
/data # ls
appendonly.aof  nodes.conf
/data # cat appendonly.aof
/data # cat nodes.conf
75614021665e6c789a7201373d905c83ee9a239a :0@0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0# 配置集群信息
/data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 1
72.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
>>> Performing hash slots allocation on 7 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.15:6379 to 172.38.0.13:6379
Adding extra replicas...
Adding replica 172.38.0.14:6379 to 172.38.0.11:6379
M: 75614021665e6c789a7201373d905c83ee9a239a 172.38.0.11:6379slots:[0-5460] (5461 slots) master
M: 004c4f22bc689e926bfa0a3588c94f05c85df3d5 172.38.0.12:6379slots:[5461-10922] (5462 slots) master
M: 4da2d19c9fb700a3cd9c73d1b571e3db27452e97 172.38.0.13:6379slots:[10923-16383] (5461 slots) master
S: a9d523fef348f24534cb17f9545c08b02528631c 172.38.0.14:6379replicates 75614021665e6c789a7201373d905c83ee9a239a
S: 25887c8d297a1df4608d6ded95ebc5a8f7a2f335 172.38.0.15:6379replicates 75614021665e6c789a7201373d905c83ee9a239a
S: 25887c8d297a1df4608d6ded95ebc5a8f7a2f335 172.38.0.15:6379replicates 4da2d19c9fb700a3cd9c73d1b571e3db27452e97
S: 5ec9426040b95800d36c3788ea904bad909030d6 172.38.0.16:6379replicates 004c4f22bc689e926bfa0a3588c94f05c85df3d5
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
...
>>> Performing Cluster Check (using node 172.38.0.11:6379)
M: 75614021665e6c789a7201373d905c83ee9a239a 172.38.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
S: 25887c8d297a1df4608d6ded95ebc5a8f7a2f335 172.38.0.15:6379slots: (0 slots) slavereplicates 4da2d19c9fb700a3cd9c73d1b571e3db27452e97
M: 004c4f22bc689e926bfa0a3588c94f05c85df3d5 172.38.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)
M: 4da2d19c9fb700a3cd9c73d1b571e3db27452e97 172.38.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: a9d523fef348f24534cb17f9545c08b02528631c 172.38.0.14:6379slots: (0 slots) slavereplicates 75614021665e6c789a7201373d905c83ee9a239a
S: 5ec9426040b95800d36c3788ea904bad909030d6 172.38.0.16:6379slots: (0 slots) slavereplicates 004c4f22bc689e926bfa0a3588c94f05c85df3d5
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
  • 测试一下
/data # redis-cli -c
127.0.0.1:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:7
cluster_my_epoch:1
cluster_stats_messages_ping_sent:383
cluster_stats_messages_pong_sent:367
cluster_stats_messages_sent:750
cluster_stats_messages_ping_received:362
cluster_stats_messages_pong_received:383
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:750
127.0.0.1:6379> cluster nodes
25887c8d297a1df4608d6ded95ebc5a8f7a2f335 172.38.0.15:6379@16379 slave 4da2d19c9fb700a3cd9c73d1b571e3db27452e97 0 1667131849589 5 connected
75614021665e6c789a7201373d905c83ee9a239a 172.38.0.11:6379@16379 myself,master - 0 1667131850000 1 connected 0-5460
004c4f22bc689e926bfa0a3588c94f05c85df3d5 172.38.0.12:6379@16379 master - 0 1667131850089 2 connected 5461-10922
4da2d19c9fb700a3cd9c73d1b571e3db27452e97 172.38.0.13:6379@16379 master - 0 1667131849088 3 connected 10923-16383
a9d523fef348f24534cb17f9545c08b02528631c 172.38.0.14:6379@16379 slave 75614021665e6c789a7201373d905c83ee9a239a 0 1667131849000 4 connected
5ec9426040b95800d36c3788ea904bad909030d6 172.38.0.16:6379@16379 slave 004c4f22bc689e926bfa0a3588c94f05c85df3d5 0 1667131850590 7 connected
127.0.0.1:6379> set a b
-> Redirected to slot [15495] located at 172.38.0.13:6379  # 这里是redis-3在处理
OK
  • 新开一个端口停掉redis-3
[root@VM-0-10-centos ~]# docker stop redis-3
redis-3
[root@VM-0-10-centos ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                                                      NAMES
c46ce8b66719   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes   0.0.0.0:6376->6379/tcp, :::6376->6379/tcp, 0.0.0.0:16376->16379/tcp, :::16376->16379/tcp   redis-6
690559f81f51   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes   0.0.0.0:6375->6379/tcp, :::6375->6379/tcp, 0.0.0.0:16375->16379/tcp, :::16375->16379/tcp   redis-5
a166b898a334   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes   0.0.0.0:6374->6379/tcp, :::6374->6379/tcp, 0.0.0.0:16374->16379/tcp, :::16374->16379/tcp   redis-4
220c8d73225c   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   24 minutes ago   Up 24 minutes   0.0.0.0:6372->6379/tcp, :::6372->6379/tcp, 0.0.0.0:16372->16379/tcp, :::16372->16379/tcp   redis-2
7d7306f91007   redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   24 minutes ago   Up 24 minutes   0.0.0.0:6371->6379/tcp, :::6371->6379/tcp, 0.0.0.0:16371->16379/tcp, :::16371->16379/tcp   redis-1
  • 尝试获取a
# 获取a,超时了,因为3挂掉了
172.38.0.13:6379> get a
Error: Operation timed out
# 重连集群
/data # redis-cli -c
# 获取a,成功了,由redis-5获取的,redis-5就是redis-3的从机
127.0.0.1:6379> get a
-> Redirected to slot [15495] located at 172.38.0.15:6379
"b"
# 查看一下集群信息,redis-3挂了,redis-5顶上了
172.38.0.15:6379> cluster nodes
4da2d19c9fb700a3cd9c73d1b571e3db27452e97 172.38.0.13:6379@16379 master,fail - 1667132142577 1667132141673 3 connected
25887c8d297a1df4608d6ded95ebc5a8f7a2f335 172.38.0.15:6379@16379 myself,master - 0 1667132320000 8 connected 10923-16383
004c4f22bc689e926bfa0a3588c94f05c85df3d5 172.38.0.12:6379@16379 master - 0 1667132321526 2 connected 5461-10922
5ec9426040b95800d36c3788ea904bad909030d6 172.38.0.16:6379@16379 slave 004c4f22bc689e926bfa0a3588c94f05c85df3d5 0 1667132322529 7 connected
a9d523fef348f24534cb17f9545c08b02528631c 172.38.0.14:6379@16379 slave 75614021665e6c789a7201373d905c83ee9a239a 0 1667132322529 4 connected
75614021665e6c789a7201373d905c83ee9a239a 172.38.0.11:6379@16379 master - 0 1667132321025 1 connected 0-5460

SpringBoot微服务打包Dokcer镜像

  • 构建SpringBoot项目
    这里直接使用若依框架的system模块
  • 编写dockerfile
FROM java:8COPY *.jar /app.jarCMD ["--server.port=9201"]EXPOSE 9201ENTRYPOINT ["java", "-jar", "/app.jar"]
  • 打包应用
[root@VM-0-10-centos ruoyi-modules-system]# ls
Dockerfile  ruoyi-modules-system.jar
  • 构建镜像
# docker build命令创建镜像
[root@VM-0-10-centos ruoyi-modules-system]# docker build -t sunbai .
Sending build context to Docker daemon  113.1MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar---> 5518a06d5b4a
Step 3/5 : CMD ["--server.port=9201"]---> Running in a6898766a8a7
Removing intermediate container a6898766a8a7---> ab53a5f07757
Step 4/5 : EXPOSE 9201---> Running in 6778917af320
Removing intermediate container 6778917af320---> dfaa63f3c09d
Step 5/5 : ENTRYPOINT ["java", "-jar", "/app.jar"]---> Running in 6798bf8381a7
Removing intermediate container 6798bf8381a7---> 935588e0522f
Successfully built 935588e0522f
Successfully tagged sunbai:latest# 查看镜像列表
[root@VM-0-10-centos ruoyi-modules-system]# docker images
REPOSITORY   TAG                IMAGE ID       CREATED         SIZE
sunbai       latest             935588e0522f   2 minutes ago   756MB
tomcat       latest             fb5657adc892   10 months ago   680MB
tomcat       7.0                9dfd74e6bc2f   16 months ago   533MB
redis        5.0.9-alpine3.11   3661c84ee9d0   2 years ago     29.8MB
java         8                  d23bdf5b1b1b   5 years ago     643MB
  • 发布运行
# 下面的运行方式容易引发OOM
# docker run -d -p 9201:9201 --name ruoyi-modules-system sunbai# 限制一下内存
docker run -d --ulimit nofile=1024:1024 -p 9201:9201 --name ruoyi-modules-system sunbai
  • 登录一下系统,登录成功

Docker实战笔记相关推荐

  1. Docker 实战笔记

    Docker的安装与配置 CentOS 前提条件 目前,CentOS 仅在发行的版本中的内核支持Docker Docker 运行在CentOS 7 上要求系统为64位,系统内核版本在3.10以上.本次 ...

  2. 尚硅谷Docker实战教程-笔记02【安装docker、镜像加速器配置】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01[理念简介 ...

  3. 阿里巴巴中台战略思想与架构实战笔记

    阿里巴巴中台战略思想与架构实战笔记 序言一 序言二 第一部分 引子 第1章 阿⾥巴巴集团中台战略引发的思考 1.1 阿⾥巴巴共享业务事业部的发展史 1.2 企业信息中心发展的症结 "烟囱式& ...

  4. 狂神 Docker学习笔记 从基础到进阶 一步到位

    Docker 学习笔记 感谢狂神的分享.附上B站视频链接. https://www.bilibili.com/video/BV1og4y1q7M4?from=search&seid=92256 ...

  5. Docker学习笔记 (4)

    Docker学习笔记 (4) Docker 网络 原理简述 ip addr查看网络地址: 问题:Docker 如何处理容器网络访问的? docker run -d -P --name tomcat01 ...

  6. 随笔——Docker学习笔记

    Docker学习笔记 一.Docker 安装 二.Docker常用命令 注意事项 1.删除容器 2.删除镜像 3.容器中命令 4.容器的生命周期 5.Dockerfile构建镜像 6.docker两个 ...

  7. Docker学习笔记-快速上手笔记(保姆级)

    文章目录 Docker简介 Docker安装 阿里云加速服务 运行流程图(run) Docker常用命令 基础命令 镜像命令 docker images docker search docker pu ...

  8. Docker基础03--Dockerfile详解与镜像发布--(狂神说docker学习笔记)

    文章目录 1. Dockerfile介绍 2. Dockerfile指令说明 3. 制作Centos镜像 3.1 编写Dockerfile的文件 3.2 通过这个文件构建镜像(注意最后加个点!!!) ...

  9. RabbitMQ实战笔记

    RabbitMQ实战笔记 1 MQ引言 1.1 中间件技术及架构的概述 1.2 什么是MQ 1.3 为什么要用MQ 1.4 MQ的分类 1.5 MQ的选择 2 RabbitMQ 的引言 2.1 Rab ...

最新文章

  1. 探究:如何判断Delphi中的对象指针是否可用
  2. matlab中隐含层缺省函数,Matlab双隐层的BP神经网络该如何创建
  3. 记一次悲惨的 Excel 导出事件
  4. 6套制造业大数据解决方案免费送,内含详细步骤手把手教会你
  5. OpenGL multiple lights多光源的实例
  6. 记录工作中常用的CSS3
  7. Android Studio Gradle输出信息乱码
  8. docker私有仓库Harbor 使用文档
  9. 各种编程语言,Linux命令行播放,Bio-Linux,Markdown编辑器等
  10. eclipse没有advanced按钮_Eclipse快捷键 + 自动提示不显示问题
  11. SAP License:今天你‘牺牲’了吗?
  12. python爬虫基础17-抓包工具使用
  13. A* search算法解迷宫
  14. 互联网晚报 | 06月03日 星期五 | 步步高回应“即将倒闭”传闻、爱彼迎启动房东/房源迁移计划;抖音宣布与中超联赛达成合作...
  15. 漫画C语言 做个聊天软件你不懂也得懂
  16. Win11如何获得最佳电源效率?
  17. 亭子早期博客中16进制颜色值地址
  18. 方舟生存进化手游版服务器维护,方舟生存进化手游PVX服务器规则一览 PVX服务器怎么玩_3DM手游...
  19. 图灵学院:淘宝大秒系统设计详解
  20. C库函数——fabs()

热门文章

  1. ROS-3DSLAM --开篇:综述
  2. Certificate Vending Machine – Amazon IoT 设备接入 Amazon IoT 平台解决方案
  3. 抖音赛道是啥?有什么逻辑?
  4. 老毛子Padavan固件DDNS不更新问题
  5. ddmmyy日期格式是多少_英语中关于年月日以及数字
  6. easyUI之增加删除与批量删除
  7. CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻
  8. 如何查找SAP notes
  9. NYOJ 小珂的烦恼
  10. 2.1spring cloud 环境配置