Docker常用命令和实战演练

基础命令:

1,启动docker环境

service docker start

2,查看当前运行中的容器

docker ps

3,查看当前本机的镜像

docker images

4,查看可以下载的某镜像

docker search kafka //查看kafka的可下载镜像

5,重启docker环境

service docker restart

演练之前我们先解释一个名词:宿主机,docker环境所在的机器这个操作系统叫做宿主机,宿主机里面rundocker的容器。

举个例子,如果你是win10操作系统,通过WMware安装了一个centos,然后在这个centos里安装了docker环境并且启动docker容器,那么这里的centos就是docker的宿主机。

Docker常用命令和实战演练

Docker_Host就是宿主机.



实战演练:

我已经开发了一个Springeureka注册服务中心(https://github.com/yejingtao/forblog/tree/master/demo-eureka-register),我想启动2docker容器来做eureka的高可用性部署。

1,修改docker服务地址

直接pull国外的官网太慢了而且经常失败,所以我们需要增加一个阿里云的地址配置,跟maven增加镜像地址的原理是一样的。

这个虽然也是免费的,但是需要到阿里云官网去注册,然后给你一个

阿里云注册地址:https://dev.aliyun.com/

加速器配置导航:https://cr.console.aliyun.com/#/accelerator,里面有教材教你怎么使用加速器。

2,下载jdk1.8docker镜像

命令:docker search jdk1.8

Docker常用命令和实战演练Description里的OS版本不要跟宿主机的OS混淆在一起,这是指docker镜像的OS,也就是说docker容器运行时的OS,我可以宿主机是centos但是我跑一个Ubuntu的容器,这都是可以的。

如果要手动指定一个自己看得顺眼的,使用以下命令

命令:docker
pull docker.io/jlwestbps/centos7.1-jdk1.8.0_73

或者直接懒人办法,直接下载最新的

命令:docker
pull jdk1.8:latest
Docker常用命令和实战演练

下载完毕后检查下环境拥有的镜像

命令docker images

Docker常用命令和实战演练

3
启动jdk1.8的容器

命令:docker run -it –name java8 1e75b7ed169c
/bin/bash

命令详解:-it交互式方式,跟它区别的是-d后台式;–name对容器进行自定义命名;1e75b7ed169c镜像的ID,也可以使用镜像的名称;/bin/bashshell

Docker常用命令和实战演练

从截图中可以看到由于是交互方式,容器启动后直接进入到了容器内不,所以docker
ps
命令是不存在的。
XShell打开另一个窗口,登录到宿主机上查看现在的容器状态

Docker常用命令和实战演练

Up标识容器是运行中的。

要想在宿主机中进入一个运行中的docker容器,使用命令:docker
exec -it java8 /bin/bash
,从docker容器中退出回到宿主机,使用命令exit

Docker常用命令和实战演练

4
上传eureka服务到容器中

不能直接向docker容器传送文件,都要先把文件上传到宿主机上,然后再通过命令让宿主机传给docker容器。

先将文件搞到centos7

位置:/home/dockershow/Templates/eureka-register-0.0.1-SNAPSHOT.jar

宿主机切换到/home/dockershow/Templates目录下。

执行命令:docker cp eureka-register-0.0.1-SNAPSHOT.jar
java8:/usr/lib

将宿主机上的jarcopyjava8这个docker容器的/usr/lib目录下。

5
将包含eureka服务的java容器制作成一个镜像

java8容器中切换到/usr/lib

执行java -jar eureka-register-0.0.1-SNAPSHOT.jar–spring.active.profiles=peer1

测试下eureka能否正常启动,验证dockerjdk镜像是否正确。

验证完后关闭eureka服务,开始制作镜像。

在宿主机上执行以下命令

命令:docker commit java8 spring-register:1 //最后3个参数是容器名、镜像名、版本号

命令:docker images检查下镜像是否创建成功

Docker常用命令和实战演练

6
用自制的镜像启动一个容器

我们先把目前启动的java8这个容器关闭

命令:docker kill java8 //关闭容器

命令:docker rm java8//删掉容器

Docker常用命令和实战演练

命令:docker run -p 1111:1111 -e spring.profiles.active=peer1
-it –name eureka1spring-register:1 /bin/bash

进入容器eureka1后启动eureka服务:

命令: java -jar /usr/lib/eureka-register-0.0.1-SNAPSHOT.jar

相同的方法启动另一个docker容器eureka2

docker run -p 1112:1112-e spring.profiles.active=peer2 -it –name eureka2 spring-register:1 /bin/bash

注意:如果访问不到VMwareCentOS7eureka,需要开放下端口:

firewall-cmd –zone=public–add-port=1111/tcp –permanent

firewall-cmd–zone=public –add-port=1111/udp –permanent

firewall-cmd –zone=public–add-port=1112/tcp –permanent

firewall-cmd –zone=public–add-port=1112/udp –permanent

firewall-cmd –reload

Docker常用命令和实战演练

Docker常用命令和实战演练


本文演示了简单的docker操作和熟悉下几个docker的概念,但是最终演示的eureka注册中心并不能满足我们生产的要求,我们下一篇博文讲学下下docker容器自启动程序和Dockerfile的编写规则。




猜您喜欢
评论已关闭。