赞
踩
目录
(3) 使用 docker commit 命令来提交更新后的副本。
(4) 使用 docker images 来查看新创建的镜像。
(3)找一台安装了docker-compose[这个后面的课程会讲解],上传并解压
(6)浏览器访问,比如39.100.39.63,输入用户名和密码即可
直接通过官网来生成,https://start.spring.io/。
自定义一个测试用Controller,启动项目后,测试是否可用。
- @RestController
- public class DockerController {
- @GetMapping("/dockerfile")
- @ResponseBody
- String dockerfile() {
- return "hello docker" ;
- }
- }
- C:\Users\tracy.chen>curl http://localhost:8080/dockerfile
- hello docker
- C:\Users\tracy.chen>
运行mvn clean install,将项目打包成jar文件docker-file-demo-0.0.1-SNAPSHOT.jar
。
在服务器上新建文件夹,并将jar文件上传。
我这边用的阿里云ECS,废了不少功夫才上传上去。
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# ll
- total 16320
- -rw-r--r-- 1 root root 16495154 Jul 16 21:59 docker-file-demo-0.0.1-SNAPSHOT.jar
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]#
创建dockerfile文件,并编辑内容。
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# ll
- total 16116
- -rw-r--r-- 1 root root 204 Jul 16 22:26 Dockerfile
- -rw-r--r-- 1 root root 16495154 Jul 16 21:59 docker-file-demo-0.0.1-SNAPSHOT.jar
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# cat Dockerfile
- FROM openjdk:8
- MAINTAINER lucas.chen
- LABEL name="docker-file-demo" version="1.0" author="lucas.chen"
- COPY docker-file-demo-0.0.1-SNAPSHOT.jar dockerfile-demo.jar
- CMD ["java","-jar","dockerfile-demo.jar"]
docker build -t 自定义镜像名 .
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# docker build -t dockerfile-demo .
- Sending build context to Docker daemon 16.5MB
- Step 1/5 : FROM openjdk:8
- 8: Pulling from library/openjdk
- e9afc4f90ab0: Already exists
- 989e6b19a265: Already exists
- af14b6c2f878: Already exists
- 5573c4b30949: Already exists
- fb1a405f128d: Already exists
- 197b0f525c26: Pull complete
- f133ed18caca: Pull complete
- Digest: sha256:7363057a9a679338e55920a57513e9077b193d94425f4d2db13766d3ff1c031e
- Status: Downloaded newer image for openjdk:8
- ---> b190ad78b520
- Step 2/5 : MAINTAINER lucas.chen
- ---> Running in 28b0a82f7530
- Removing intermediate container 28b0a82f7530
- ---> 261639c2587f
- Step 3/5 : LABEL name="docker-file-demo" version="1.0" author="lucas.chen"
- ---> Running in 2b5a24361dbf
- Removing intermediate container 2b5a24361dbf
- ---> ec898c16b323
- Step 4/5 : COPY docker-file-demo-0.0.1-SNAPSHOT.jar dockerfile-demo.jar
- ---> 3ba778f9a9a7
- Step 5/5 : CMD ["java","-jar","dockerfile-demo.jar"]
- ---> Running in 55a9a8455857
- Removing intermediate container 55a9a8455857
- ---> ca4d859482c1
- Successfully built ca4d859482c1
- Successfully tagged dockerfile-demo:latest
-
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- dockerfile-demo latest ca4d859482c1 3 minutes ago 527MB
- james821/tomcat.lucas 1.0 aba402c4a427 14 hours ago 791MB
- tomcat.lucas 1.0 aba402c4a427 14 hours ago 791MB
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]#

docker run
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# docker run -d --name dockerfile -p 9999:8080 dockerfile-demo
- dbd499b2e3fe2b07190755a30c9b73757f8ceb9f6ec7980ddaa7cb6a1c859e48
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- dbd499b2e3fe dockerfile-demo "java -jar dockerfil…" 6 seconds ago Up 4 seconds 0.0.0.0:9999->8080/tcp dockerfile
docker logs
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# docker logs dockerfile
-
- . ____ _ __ _ _
- /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
- ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
- \\/ ___)| |_)| | | | | || (_| | ) ) ) )
- ' |____| .__|_| |_|_| |_\__, | / / / /
- =========|_|==============|___/=/_/_/_/
- :: Spring Boot :: (v2.3.1.RELEASE)
-
- 2020-07-17 02:15:32.191 INFO 1 --- [ main] c.e.d.DockerFileDemoApplication : Starting DockerFileDemoApplication v0.0.1-SNAPSHOT on dbd499b2e3fe with PID 1 (/dockerfile-demo.jar started by root in /)
- 2020-07-17 02:15:32.199 INFO 1 --- [ main] c.e.d.DockerFileDemoApplication : No active profile set, falling back to default profiles: default
- 2020-07-17 02:15:34.818 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
- 2020-07-17 02:15:34.854 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
- 2020-07-17 02:15:34.854 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.36]
- 2020-07-17 02:15:35.111 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
- 2020-07-17 02:15:35.111 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2788 ms
- 2020-07-17 02:15:36.001 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
- 2020-07-17 02:15:36.534 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
- 2020-07-17 02:15:36.575 INFO 1 --- [ main] c.e.d.DockerFileDemoApplication : Started DockerFileDemoApplication in 5.326 seconds (JVM running for 6.195)
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]#

- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]# curl 127.0.0.1:9999/dockerfile
- hello docker
- [root@iZ2zef4zu0mvk0hhwa0il1Z firstdockerfile]#
通常Docker镜像都不支持yum和vim命令,我们安装一个yum和vim,然后生成新的镜像。
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- mongo 4.4.0-rc11 8c7720f503aa 2 weeks ago 492MB
- redis alpine b546e82a6d0e 5 weeks ago 31.5MB
- haproxy latest 14fcadff50a5 5 weeks ago 92.4MB
- tomcat latest 2eb5a120304e 5 weeks ago 647MB
- mysql 5.7 9cfcce23593a 5 weeks ago 448MB
- hello-world latest bf756fb1ae65 6 months ago 13.3kB
- perconalab/pxc-openshift latest a6fa4d81c1e2 13 months ago 611MB
- swarm latest ff454b4a0e84 2 years ago 12.7MB
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker run -d tomcat
- c0af76bf294cc7571724f9ee093ba3aa780522c75275ac91d4cf6c18989085c2
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- c0af76bf294c tomcat "catalina.sh run" 4 seconds ago Up 2 seconds 8080/tcp unruffled_dirac
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]#

注意:记住容器的 ID,稍后还会用到。
- root@c0af76bf294c:/usr/local/tomcat# apt-get update
- ...省略安装过程...
-
- root@c0af76bf294c:/usr/local/tomcat# apt-get install vim -y
- ...省略安装过程...
-
- root@c0af76bf294c:/usr/local/tomcat# apt-get install yum -y
- ...省略安装过程...
当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了。
-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;
-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。
创建成功后会返回这个镜像的 ID 信息。
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- c0af76bf294c tomcat "catalina.sh run" 57 minutes ago Up 57 minutes 8080/tcp unruffled_dirac
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker commit -m "add yum and vim" -a "lucas.chen" c0af76bf294c tomcat.lucas:1.0
- sha256:aba402c4a427d25e4a10e10e5e94b8e3e2b3a5911d6f9af669380e069c256d29
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]#
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- tomcat.lucas 1.0 aba402c4a427 31 seconds ago 791MB
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker run -d tomcat.lucas:1.0
- f98fa428ac25c360410d6be498177c1f66c145039cf942ba5ffdffecadbe0fcc
-
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- f98fa428ac25 tomcat.lucas:1.0 "catalina.sh run" 3 seconds ago Up 2 seconds 8080/tcp zealous_kowalevski
进入新的容器,发现已经自带vim和yum命令了。
https://github.com/goharbor/harbor
https://github.com/goharbor/harbor/releases
tar -zxvf xxx.tar.gz
修改harbor.cfg文件,主要是ip地址的修改成当前机器的ip地址
同时也可以看到Harbor的密码,默认是Harbor12345
sh install.sh
我是阿里云ECS机器,Centos8系统,首先网上找资料,都说要通过命令执行安装bridge-utils。
- [root@iZ2zef4zu0mvk0hhwa0il1Z ~]# yum install -y bridge-utils
- Repository AppStream is listed more than once in the configuration
- Repository extras is listed more than once in the configuration
- Repository PowerTools is listed more than once in the configuration
- Repository centosplus is listed more than once in the configuration
- Repository epel is listed more than once in the configuration
- Last metadata expiration check: 0:08:08 ago on Sun 19 Jul 2020 04:22:14 PM CST.
- No match for argument: bridge-utils
- Error: Unable to find a match: bridge-utils
但是无论怎么操作,都安装不了。
各种找资料还是无果,无奈只能试试能不能手动安装。
# bridge-utils-1.6 源码下载,然后上传到服务器 https://mirrors.edge.kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-1.6.tar.xz # 源码解压 tar -xvf bridge-utils-1.6.tar.xz # 安装autoconf工具 yum install autoconf # 使用 autoconf 工具生成配置文件 autoconf # 配置,生成makefile文件 ./configure # 编译与安装 make make install # bridge-utils 已经安装完毕。测试使用情况: [root@iZ2zef4zu0mvk0hhwa0il1Z bridge-utils-1.6]# brctl show bridge name bridge id STP enabled interfaces docker0 8000.02422fc70dd0 no veth5481848 veth7162f75
完美!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。