Docker 学习与实践2

Docker 容器使用

查看运行的容器

查看正在运行的容器:docker ps 来查看我们正在运行的容器:
使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。

查看程序日志

docker logs [ID或者名字] 可以查看容器内部的标准输出

查看程序容器的进程

我们还可以使用 docker top 来查看容器内部运行的进程

检查程序的参数

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

停止容器

使用 docker stop

重启容器

已经停止的容器,我们可以使用命令 docker start 来启动。
docker ps -l 查询最后一次创建的容器:
正在运行的容器,我们可以使用 docker restart 命令来重启

移除容器

我们可以使用 docker rm 命令来删除不需要的容器
注:删除容器时,容器必须是停止状态,否则会报如下错误

1.Docker之官方仓库镜像部署

Docker 镜像加速

在学习Docker的过程中,下载镜像速度特别慢,这是因为Docker Hub并没有在国内部署服务器或者CDN,再加上国内的网速慢等原因,镜像下载就十分耗时。为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,最为有效的方式之一就是:使用 国内的Docker镜像源,Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com
当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{“registry-mirrors”:[“https://reg-mirror.qiniu.com/”]}
之后重新启动服务:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
在这里插入图片描述

Docker实例

Docker 安装 Nginx

1、 从Docker Hub上查找nginx镜像,默认是最新版本 nginx:latest
docker search nginx
在这里插入图片描述
2、拉取官方的镜像docker pull nginx不指定版本,默认下载最新版本
在这里插入图片描述
3、使用docker images nginx命令,查看我们拉取到本地的nginx镜像IMAGE ID
在这里插入图片描述
4、运行容器: docker run --name mynginx -p 80:80 -d nginx
参数说明:
 -d nginx: 设置容器在在后台一直运行
 --name 指定容器名称,此处我指定的是mynginx
 -p 指定主机与容器内部的端口号映射关系,格式 –p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口
在这里插入图片描述
5、使用docker ps命令,可以查看到正在运行的nginx容器
在这里插入图片描述
6、安装成功,我们可以通过浏览器可以直接访问 80 端口的 nginx 服务:
在这里插入图片描述

7、停止nginx:docker stop mynginx
8、启动nginx:docker start mynginx
9、重启 :docker restart mynginx
在这里插入图片描述

Docker 安装 Node.js

1、从Docker Hub上查找node镜像,默认是最新版本 node:latest
docker search node
在这里插入图片描述
2、拉取官方的镜像docker pull node不指定版本,默认下载最新版本
在这里插入图片描述
3、使用docker images node命令,查看我们拉取到本地的node镜像IMAGE ID
在这里插入图片描述
4、运行容器: docker run -itd --name node-test node
参数说明:
-I :以交互模式运行容器,通常与 -t 同时使用;
-t :为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d :后台运行容器,并返回容器ID;
–name : 指定容器名称,此处我指定的是node-test
在这里插入图片描述
5、安装成功,最后进入查看容器运行的 node 版本:
docker exec -it node-test /bin/bash
node -v
在这里插入图片描述

Docker之本地构建镜像推送到私有仓库执行部署

linux上将可运行的jar打包为 docker的镜像文件,以/auto-deploy-1.4.2.jar(自动化部署包)为例子
1、我们要有安装了docker环境的机器,把 auto-deploy-1.4.2.jar放入/auto-deploy-1.4.2目录下(此目录任意)
2、创建一个文件来存放打包镜像的命令
touch Dockerfile
使用 vi 或者 vim编辑Dockerfile文件
vim Dockerfile
新增内容到Dockerfile文件中,

FROM openjdk:8-jdk-alpine
RUN echo "Asia/Shanghai" > /etc/timezone
ADD ./auto-deploy-1.4.2.jar app.jar
CMD ["nohup", "java", "-jar", "-Dfile.encoding=UTF-8", "/app.jar", "&"]

在这里插入图片描述

FROM 指需要使用的java版本,
RUN 修改时区:以 openjdk-8-jdk-alpine 为基础镜像制作的镜像有时区问题。查资料知道 alpine 本身不带时区信息
ADD 指需要用哪个jar打包镜像,打包后的文件名称是什么,
CMD指,如果当前镜像在容器中启动,执行的命令。

3、build一下:docker build -t auto-deploy1.4.2 .
注:auto-deploy1.4.2 . 指的是镜像名称,注意后面一定要有个点,指当前路径。
在这里插入图片描述

4、查看当前拥有的镜像:docker image ls (docker images)
在这里插入图片描述

5、给本地镜像auto-deploy1.4.2打上tag
docker tag auto-deploy1.4.2:latest 10.1.152.21/ideploy_auto/auto-deploy1.4.2:latest
6、推送镜像到私有仓库:docker push 10.1.152.21/ideploy_auto/auto-deploy1.4.2:latest
在这里插入图片描述

7、在ideploy拉取私有仓库的ideploy_auto/auto-deploy1.4.2执行部署
8、登陆hub:
docker login dockerhub.iflytek.com -u 《用户名》 -p 《密码》
在这里插入图片描述

9、拉取镜像
docker pull ideploy_auto/auto-deploy1.4.2:latest
10、执行部署
docker run --name=“test-auto-deploy” -e path=/home/cis -v /config:/config -v /iflytek/zyy-docker/:/iflytek/ap/auto-deploy/log -p 7082:80/TCP -d auto-deploy1.4.2:latest
参数说明:
 -d: 设置容器在在后台一直运行
 --name :指定容器名称,此处我指定的是test-auto-deploy
 -e :设置环境变量
 -v :给容器挂载数据卷:Source为外部路径
 指定主机与容器内部的端口号映射关系,格式 –p [宿主机端口号]:[容器内部端口],

10、停止:docker stop test-auto-deploy
11、启动:docker start test-auto-deploy
12、重启 :docker restart test-auto-deploy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值