Docker初识

21 篇文章 0 订阅
5 篇文章 0 订阅
  • 1、SpringCloud项目打包成Docker镜像

首先我们要先创建一个文件夹,存储要打包的jar包。然后在当前目录下创建Dockerfile文件。如下图:

我的”/home/antcity/antcity-cloud/govern“目录中只有两个文件,一个是Dockerfile文件,另一个是要打包的jar文件。

然后执行打包命令。其中 docker build -t 指定要进行打包。test-govern为打包成的镜像名称。最后那个.(点)指定当前目录。

 docker build -t test-govern .

执行后显示如下信息:

这时就可以查看是否打包成功了。命令为:

 docker images

执行后显示如下信息:

在里面如果能找到我们打包的名称表示打包成功了。这样这一步我们就可以创建容器了。

  • 2、根据镜像创建容器

创建窗口需要用到docker run命令。我们刚才创建的镜像名称为test-govern。我就根据这个镜像创建一个容器。代码如下:

 docker run -p 8762:8761 -v /antcity-cloud/logs:/root/logs --name mytest-govern -d test-govern

在这个命令中 -p指定要映射的端口,8762为本地服务器的端口,8761为docker里面的端口,-v 指定将当前服务器中的目录映射到docker镜像中。/antcity-cloud/logs为本地服务器的目录,/root/logs为服务器的目录。--name 指定这个窗口的名称,test-govern为要根据哪个镜像创建容器。-d 参数用于指定 在后台运行,如果不加这个参数,启动信息将会时时显示在屏幕上。

创建成功后我们可以通过docker ps来查看已经启动的容器,可以通过docker ps -a查看所有容器。如下:

[root@localhost govern]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
09259f68dc82        service-config      "java -Djava.secur..."   22 minutes ago      Up 22 minutes       0.0.0.0:9001->9000/tcp     myservice-config
405b953cc741        service-govern      "java -Djava.secur..."   9 hours ago         Up 9 hours          0.0.0.0:8762->8761/tcp     myservice-govern
61decc74a3ad        redis               "docker-entrypoint..."   21 hours ago        Up 9 hours          0.0.0.0:6379->6379/tcp     redis
8c64e6d3c508        mysql:5.6           "docker-entrypoint..."   22 hours ago        Up 9 hours          0.0.0.0:3306->3306/tcp     mymysql
00522dc4fb3a        mongo               "docker-entrypoint..."   23 hours ago        Up 9 hours          0.0.0.0:27017->27017/tcp   mongodb
cfea09c93e77        nginx               "nginx -g 'daemon ..."   27 hours ago        Up 8 hours          0.0.0.0:80->80/tcp         mynginx
[root@localhost govern]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                      NAMES
09259f68dc82        service-config      "java -Djava.secur..."   23 minutes ago      Up 23 minutes               0.0.0.0:9001->9000/tcp     myservice-config
405b953cc741        service-govern      "java -Djava.secur..."   9 hours ago         Up 9 hours                  0.0.0.0:8762->8761/tcp     myservice-govern
60926795b335        nginx               "nginx -g 'daemon ..."   9 hours ago         Created                                                gracious_albattani
7e8df654779f        nginx               "nginx -g 'daemon ..."   9 hours ago         Created                                                ecstatic_lamport
66dc10cd4ce8        nginx               "nginx -g 'daemon ..."   9 hours ago         Created                                                elated_booth
56a3b6aa4db9        nginx               "bash"                   9 hours ago         Created                                                confident_panini
944e0da0b33d        nginx               "nginx -g 'daemon ..."   9 hours ago         Exited (0) 9 hours ago                                 optimistic_noyce
ead9e77f658d        nginx               "nginx -g 'daemon ..."   9 hours ago         Exited (0) 9 hours ago                                 frosty_euler
6a1770ef5a1b        nginx               "nginx -g 'daemon ..."   10 hours ago        Created                                                epic_saha
96ad4f9c501b        nginx               "nginx -g 'daemon ..."   10 hours ago        Created                                                youthful_davinci
0473942a72ba        nginx               "nginx -g 'daemon ..."   10 hours ago        Exited (0) 10 hours ago                                practical_williams
2ac271bf0557        nginx               "nginx -g 'daemon ..."   10 hours ago        Exited (0) 10 hours ago                                optimistic_darwin
8d51489cc4af        nginx               "nginx -g 'daemon ..."   10 hours ago        Exited (0) 10 hours ago                                wizardly_ritchie
61decc74a3ad        redis               "docker-entrypoint..."   21 hours ago        Up 9 hours                  0.0.0.0:6379->6379/tcp     redis
ca8c2f8a4eda        2cdecf6eb9d6        "java -Djava.secur..."   22 hours ago        Created                                                sad_hypatia
3715592914fa        2cdecf6eb9d6        "java -Djava.secur..."   22 hours ago        Created                                                awesome_wiles
8c64e6d3c508        mysql:5.6           "docker-entrypoint..."   22 hours ago        Up 9 hours                  0.0.0.0:3306->3306/tcp     mymysql
00522dc4fb3a        mongo               "docker-entrypoint..."   23 hours ago        Up 9 hours                  0.0.0.0:27017->27017/tcp   mongodb
c561caefb7e0        d7d03cc52544        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              wonderful_lichterman
dc0ce9077c6b        d7d03cc52544        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              cocky_kirch
9680f0b0199e        4b77da8c01ef        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              dreamy_albattani
fc9c73a8f67b        4b77da8c01ef        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              pensive_babbage
3b4d4a0f62a2        4b77da8c01ef        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              eager_pasteur
d6105685b629        4b77da8c01ef        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              sad_wiles
24af30efd2e3        4b77da8c01ef        "java '-Djava.secu..."   23 hours ago        Exited (130) 23 hours ago                              ecstatic_darwin
78f2f5d79380        02c0ba17e34c        "java -Djava.secur..."   24 hours ago        Exited (130) 23 hours ago                              brave_minsky
1666608b0d21        2cdecf6eb9d6        "java -Djava.secur..."   24 hours ago        Exited (143) 23 hours ago                              gracious_leakey
330597037f03        2cdecf6eb9d6        "java -Djava.secur..."   24 hours ago        Exited (130) 24 hours ago                              jovial_wiles
5f681715490f        02c0ba17e34c        "java -Djava.secur..."   24 hours ago        Exited (130) 24 hours ago                              elegant_noether
a3600203ff3d        02c0ba17e34c        "java -Djava.secur..."   24 hours ago        Exited (130) 24 hours ago                              vigilant_austin
0f1cad04b157        81d154770667        "java '-Djava.secu..."   24 hours ago        Exited (130) 24 hours ago                              objective_pike
f24f0ad46be4        5a6bcb47b29e        "java -Djava.secur..."   24 hours ago        Exited (1) 24 hours ago                                focused_perlman
68106a252f1d        c389bdd0f477        "java -Djava.secur..."   24 hours ago        Exited (1) 24 hours ago                                elastic_bell
e7a292f6a064        dd8bffc793cb        "java -Djava.secur..."   24 hours ago        Exited (1) 24 hours ago                                service-config
da6cc984dd5c        2cdecf6eb9d6        "java -Djava.secur..."   25 hours ago        Exited (143) 24 hours ago                              peaceful_lewin
cfea09c93e77        nginx               "nginx -g 'daemon ..."   27 hours ago        Up 8 hours                  0.0.0.0:80->80/tcp         mynginx
0ab40729e61d        nginx               "nginx -g 'daemon ..."   27 hours ago        Exited (0) 27 hours ago                                pensive_leavitt
7d25ee27bba3        nginx               "nginx -g 'daemon ..."   27 hours ago        Exited (0) 27 hours ago                                mystifying_bell
c00356355536        nginx               "nginx -g 'daemon ..."   27 hours ago        Exited (0) 27 hours ago                                stupefied_brahmagupta
1acb5bf38912        nginx               "nginx -g 'daemon ..."   27 hours ago        Exited (0) 27 hours ago                                flamboyant_lamarr
c7faff7300af        nginx               "nginx -g 'daemon ..."   27 hours ago        Exited (0) 27 hours ago                                dazzling_brahmagupta
[root@localhost govern]# 

当容器创建成功后,我们下一次启动容器就不能用docker run,而应该是用docker start|restart 容器名称,如下:

 docker start  service-govern
 docker restart service-govern

docker start 为命令,service-govern为容器名称,这个命令表示启动名称service-govern的容器,如果创建容器没有指定名称时可以用”CONTAINER ID“中指定的值来进行启动或关闭窗口

docker stop service-govern

docker stop 为停止一个容器。service-govern为容器名称或容器ID

  • 3、Docker的其他操作

(进入容器内部)当我们启动一个容器后由于很多情况下需要进入容器内部查看某些信息,因此可以使用docker exec命令,代码如下:

[root@localhost govern]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
09259f68dc82        service-config      "java -Djava.secur..."   31 minutes ago      Up 31 minutes       0.0.0.0:9001->9000/tcp     myservice-config
405b953cc741        service-govern      "java -Djava.secur..."   9 hours ago         Up 9 hours          0.0.0.0:8762->8761/tcp     myservice-govern
61decc74a3ad        redis               "docker-entrypoint..."   22 hours ago        Up 9 hours          0.0.0.0:6379->6379/tcp     redis
8c64e6d3c508        mysql:5.6           "docker-entrypoint..."   23 hours ago        Up 9 hours          0.0.0.0:3306->3306/tcp     mymysql
00522dc4fb3a        mongo               "docker-entrypoint..."   23 hours ago        Up 9 hours          0.0.0.0:27017->27017/tcp   mongodb
cfea09c93e77        nginx               "nginx -g 'daemon ..."   27 hours ago        Up 8 hours          0.0.0.0:80->80/tcp         mynginx
[root@localhost govern]# docker exec -it cfea09c93e77 bash
root@cfea09c93e77:/# 

首先看看哪个-容器是启动的,docker exec命令只能进入已经启动的容器中,然后执行docker exec -it 容器ID bash 这样就进入容器内部了。

(删除容器)当我们有某个窗口不需要使用的时候可以通过docker rm 容器ID进行删除,代码如下:

[root@localhost govern]# docker rm f24f0ad46be4
f24f0ad46be4
[root@localhost govern]# 

(删除镜像)当我们不需要使用某个镜像时,可以通过docker rmi 镜像ID进行删除,代码如下:

[root@localhost govern]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
service-config      latest              be9d7c01bd07        About an hour ago   729MB
<none>              <none>              5d3617929ab1        9 hours ago         729MB
service-govern      latest              53e9027a3d76        9 hours ago         739MB
test-govern         latest              53e9027a3d76        9 hours ago         739MB
<none>              <none>              d7d03cc52544        23 hours ago        729MB
<none>              <none>              4b77da8c01ef        24 hours ago        729MB
<none>              <none>              02c0ba17e34c        25 hours ago        729MB
<none>              <none>              81d154770667        25 hours ago        729MB
<none>              <none>              5a6bcb47b29e        25 hours ago        729MB
<none>              <none>              c389bdd0f477        25 hours ago        729MB
<none>              <none>              dd8bffc793cb        25 hours ago        729MB
<none>              <none>              2cdecf6eb9d6        26 hours ago        739MB
mongo               latest              b1c8142b3efc        4 days ago          410MB
nginx               latest              bb776ce48575        5 days ago          109MB
redis               latest              a55fbf438dfd        2 weeks ago         95MB
mysql               5.6                 bc788a6a2745        2 weeks ago         256MB
java                latest              d23bdf5b1b1b        2 years ago         643MB
[root@localhost govern]# docker rmi test-govern
Untagged: test-govern:latest

注意:由于docker的每个容器类似于虚拟机的存在,因此docker会为每个启动的容器分配唯一的IP地址。比如我的服务器的IP地址信息如下:

[root@localhost govern]# ip addr
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:ac:3f:41 brd ff:ff:ff:ff:ff:ff
    inet 10.112.1.72/24 brd 10.112.1.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::91f6:58f9:6a52:f1bc/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:63:d9:79:2f 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:63ff:fed9:792f/64 scope link 
       valid_lft forever preferred_lft forever
173: vethfd3a98b@if172: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 4a:a3:c7:ff:c7:0e brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::48a3:c7ff:feff:c70e/64 scope link 
       valid_lft forever preferred_lft forever
175: vethbb5eb3c@if174: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether da:06:6e:f3:cd:ed brd ff:ff:ff:ff:ff:ff link-netnsid 2
    inet6 fe80::d806:6eff:fef3:cded/64 scope link 
       valid_lft forever preferred_lft forever
177: veth5ccb0d5@if176: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 1a:bc:cf:8f:3e:70 brd ff:ff:ff:ff:ff:ff link-netnsid 3
    inet6 fe80::18bc:cfff:fe8f:3e70/64 scope link 
       valid_lft forever preferred_lft forever
185: veth49ec489@if184: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether ca:3b:c5:6a:ed:ac brd ff:ff:ff:ff:ff:ff link-netnsid 4
    inet6 fe80::c83b:c5ff:fe6a:edac/64 scope link 
       valid_lft forever preferred_lft forever
193: vethe90f12f@if192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether ce:2d:24:54:f2:f3 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::cc2d:24ff:fe54:f2f3/64 scope link 
       valid_lft forever preferred_lft forever
203: veth9d299d2@if202: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 22:b9:ec:28:89:c9 brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::20b9:ecff:fe28:89c9/64 scope link 
       valid_lft forever preferred_lft forever

因此如果我们的服务中有调用其他服务的信息,尽量设置为docker0网卡指定的IP,这个IP为Docker为主机分配的IP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值