docker应用 + Portainer可视化工具

docker安装(支持各系统)及使用参考:https://www.w3cschool.cn/docker/centos-docker-install.html

docker hub 搜索下载镜像:https://hub.docker.com/

docker 可视化管理工具:https://www.jianshu.com/p/b3bec0b936c2

1.centOs7版本安装docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

使用 yum -y install docker 命令安装

docker应用 + Portainer可视化工具_第1张图片

安装完成后使用 docker -v 确认安装完成及版本

启动docker 服务

测试运行 hello-world,由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

docker应用 + Portainer可视化工具_第2张图片

服务启动后,还可以用命令 docker images,查看当前docker 仓库中的镜像。刚pull下来的hello-world镜像也在其中。

2.docker常用命令

docker 显示所有 commands 用法及介绍

service docker start

service docker restart

service docker stop

docker -v

docker build -t test:1.0 -f Dockerfile-jenkins .

-t 定义构建的镜像名及版本
-f 如果用的不是Dockerfile,需要用这个参数来指定
.  表示Dockerfile位于当前目录下

docker images 查看本地镜像

docker ps -a 查看所有容器,及其运行状态,容器id等信息

docker ps 查看当前正在运行的容器

docker logs [container id] 查看容器的日志输出

docker logs -f [container id] 像tail -f 监听日志

docker stop [container id] 停止正在运行的容器

docker start [container id] 启动容器

docker inspect [container id] 查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

docker rm [container id] 删除废弃的容器,容器必须已停止才可删除,否则报错。

批量删除容器:

-f: 强行删除运行中的容器
-v: 删除容器卷
-f: --filter,按名字=rancher去过滤容器
-qa: 只展示容器id

docker rm -f -v $(docker ps -f name=rancher -qa)
删除镜像时使用-f参数可以强行删除镜像,但建议应先删除引用该镜像的容器,再删除该镜像。

docker rmi [-f] [IMAGE ID] 通过镜像id删除镜像,

docker rmi [-f] [REPOTSITERY:TAG] 通过标签删除镜像

将15.10版本的ubuntu镜像,运行成容器:
docker run -t -i ubuntu:15.10 /bin/bash

--restart=always 即在容器停止或服务器重启后,自动启动
-i 允许你对容器内的标准输入 (STDIN) 进行交互
-t 在新容器内指定一个伪终端或终端
-d 容器后台运行
-p port:port 将容器内部的端口映射到我们的主机上 
-P 是容器内部端口随机映射到主机的高端口
-v dir1:dir2:ro 可以指定宿主机的目录或文件(dir1),挂载到容器的对应目录,如果加上:ro,表示容器只能读不能写
docker search mysql 可以用来搜索你需要的镜像,如:Mysql镜像

NAME:镜像仓库源的名称

DESCRIPTION:镜像的描述

OFFICIAL:是否docker官方发布

docker tag [IMAGE ID] [REPOSITERY]:[TAG] 在指定imageid的镜像基础上,复制出一个定义了新tag的镜像。

3.docker构建镜像的3种方式

1)将当前目录下的 Dockerfile 文件构建成镜像,如果Dcokerfile文件名为其他,或不在当前目录,可以用 -f 参数去指定要用的Dcokerfile文件:

docker build -t my/test:1.0  . 
              指定镜像名:版本  取当前目录Dockerfile 

2)将指定容器打包成新的镜像

docker commit -m="has finish" -a="laowang" e218edb10161 my/test:1.0
                  描述提交信息     指定作者    容器id      指定镜像名:版本

3)将docker制成压缩包,并在其他机器加载成镜像

docker save redis > redis.tar.gz    #将镜像制成压缩包

docker应用 + Portainer可视化工具_第3张图片

现在将镜像从本地删除,然后重新装载:

docker load -i redis.tar.gz    #将本地文件加载成镜像

docker应用 + Portainer可视化工具_第4张图片

4.Dockerfile文件内容介绍

#说明:dockerfile的基础命令

FROM:指为当前的环境引入一个基础镜像(nginx环境之上的linux内核镜像)  
CMD:执行命令(和run很相似,但是一个dockerfile只能有一个cmd指令,如有多个最后一个生效)
LABEL:设置标签(类似为变量赋值) 
EXPOSE:暴露端口号(解除断口的防火墙) 
ENV:设置环境变量 
COPY:复制到指定地方 
ADD: copy指令的高级版(具有解压功能),将系统文件拷贝到容器内,可以指定到具体目录下 
USER:指定容器的用户 
WORKDIR:如果目录存在 cd到指定目录,不存在则创建并cd到指定目录 
ARG:表示变量

VOLUME ["/data1","/data2","/data3"] 挂载卷:/data1~3都是容器内的目录,Dockerfile挂载不能指定映射主机目录,运行容器后在docker安装目录自动生成,可通过docker inspect 容器id 查看。
其实VOLUME指令只是起到了声明了容器中的目录作为匿名卷,但是并没有将匿名卷绑定到宿主机指定目录的功能。但是当我们生成镜像的Dockerfile中以Volume声明了匿名卷,并且我们以这个镜像run了一个容器的时候,docker会在安装目录下的指定目录下面生成一个目录来绑定容器的匿名卷(这个指定目录不同版本的docker会有所不同)。 

ENTRYPOINT ["java","-jar","eureka.jar"] (容器启动后执行的命令,如该命令可在java镜像启动后,运行jar程序。可以覆盖CMD的内容)

RUN rm -rf /usr/local/tomcat/webapps/ROOT 构建镜像时运行指令,如 :构建tomcat镜像时删除自带的ROOT目录(apt install vim相似的指令)

5.docker运行一个可执行程序jar

docker应用 + Portainer可视化工具_第5张图片

# 以下为Dockerfile文件的内容

FROM java:8
MAINTAINER jjp
ADD eureka-0.0.1-SNAPSHOT.jar eureka.jar
EXPOSE 8761
ENTRYPOINT ["java","-jar","eureka.jar"]

docker应用 + Portainer可视化工具_第6张图片

6.Dockerfile运行war包

1.新建Dockerfile文件,没映射 /usr/local/tomcat/webapps 是因为Dockerfile里不能指定映射的主机目录。所以我准备在启动容器时再映射

docker应用 + Portainer可视化工具_第7张图片

 2.打包镜像

docker应用 + Portainer可视化工具_第8张图片

3.运行镜像,设置参数 -v $PWD/webapps:/usr/local/tomcat/webapps,新打成的war包,放到webapps下,即可在容器内运行了。

docker应用 + Portainer可视化工具_第9张图片

4. docker inspect [container id],查看容器参数,可以看到 Dockerfile 指定的容器卷,自动生成映射的主机目录

docker应用 + Portainer可视化工具_第10张图片

安装 -> Docker 可视化工具 Portainer

1.下载

docker search portainer

docker pull portainer/portainer

2.启动,端口映射9000

docker run -d \
 -p 9000:9000 \
 --restart=always \
 -v /run/docker.sock:/var/run/docker.sock \
 --name portainer \
 portainer/portainer

3.访问

浏览器打开:http://ali:9000,登录用户admin,需要设置8位密码,我用12345678

docker应用 + Portainer可视化工具_第11张图片

4.登录Local、Remote

登录后,可选择 Local 或 Remote 连接

docker应用 + Portainer可视化工具_第12张图片

Portainer 工具是指定 /run/docker.sock 启动的,能连接到本地docker。我们选择连接 Local:

1. 选择Local 并连接:会看到服务器本地仓库镜像和容器

这个管理界面的功能非常的丰富,有镜像、容器、网络等方面的直观统计,非常的方面。
点击左边菜单栏的 Containers,打开容器管理界面,可以对容器进行增删改查的操作!

docker应用 + Portainer可视化工具_第13张图片

你可能感兴趣的:(docker)