一.Docker的基本操作

2.0安装:

  aliyun:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

yum -y install yum-utils device device-mapper-persistent-data lvm2

# 指定下载源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 生成缓存

yum makecache fast

# install

yum -y install docker-ce

2.1 Docker 启动以及测试

# 启动docker服务

systemctl start docker

# 设置开机自启

systemctl enable docker

# 测试

docker run hello-world

2.2 Docker的中央仓库

1. Docker官方的中央仓库。下载速度较慢

https://hub.docker.com

2. 国内的镜像网址:网易蜂巢,daoCloud...

https://c.163yun.com/hub#/home

https://hub.daocloud.io/   (推荐使用)

2.3 镜像的操作

# 拉取镜像到本地

docker pull 镜像名称[:tag]

# example:

docker pull daocloud.io/library/tomcat:8.5.15-jre8

# 查看本地全部镜像

docker images

# 删除本地镜像

docker rmi 镜像唯一标识

# 镜像的导入导出(不规范)

# 将本地的镜像导出

docker save -o 导出的路径 镜像id

# 加载本地的镜像文件

docker load -I 镜像文件

# 修改镜像名称

docker tag 镜像id 新镜像名称:镜像版本

2.4 容器的操作

# 1. 运行容器

# 简单操作

docker rum 镜像的标识 | 镜像名称[:tag]

# 常用的参数

docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识 | 镜像名称[:tag]

# -d: 代表后台运行容器

# -p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口

# --name:容器名称:指定容器的名称

2. 查看正在运行的容器

docker ps [-qa]

# -a:查看全部容器,包括没有运行的

# -q:只查看容器的标识

3. 查看容器日志

docker logs -f 容器id

# -f:可以滚动查看日志的最后几行

4. 进入到容器内部

docker exec -it 容器id bash

5. 删除容器(删除容器前,首先要停止容器)

docker stop 容器id

# 停止全部容器

docker stop $(docker ps -qa)

# 删除单个容器

docker rm 容器id

# 删除全部容器

docker rm $(docker ps -qa)

6. 启动容器

docker start 容器id

三. Docker应用

3.1准备SSM工程

# 任务完成

3.2准备MySQL容器

# 运行mysql容器

docker run -d -p 3306:3306 –name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4

# -e 指定登录数据库时root用户的密码

3.3准备Tomcat容器

# 可以查考前面的mysql

# 通过命令将宿主机的内容复制到容器内部

docker cp 文件名称 容器id:容器内容路径

# example:

docker cp ssm.war fe:/usr/local/tomcat/webapps/

3.4数据卷

为了部署SSM的工程,需要使用到cp的命令将宿主机内的ssm.war文件复制到容器内部。

数据卷:将宿主机的一个目录映射到容器的一个目录中。

可以在宿主机中操作目录的内容,那么容器内容映射的文件也会跟着改变。

# 1. 创建数据卷

docker volume create 数据卷名称

# 创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data

# 2. 查看数据卷的详细信息

docker volume inspect 数据卷名称

# 3. 查看全部数据卷

docker volume ls

# 4. 删除数据卷

docker volume rm tomcat

# 5. 应用数据卷

# 当你映射数据卷时,如果数据卷不存在。docker会帮你自动创建,会将容器内部自带的文件,存储在默认的存放路径中。

docker run -v 数据卷名称:容器内容的路径 镜像id

# 直接指定一个路径作为数据卷的存放位置。这个路径下是空的。

docker run -v 路径:容器内部的路径 镜像id

四. 下载Docker-Compose

# 1. github官网搜索docker-compose,下载docker-compose。

https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64

# 2. 将下载好的文件放入Linux操作系统中。

# 3. 需要将DockerCompose文件的名称修改一下,基于Cokcercompose文件一个可执行的权限。

mv docker-compose-Linux-x86_64 docker-compose

chmod 777 docker-compose

# 4. 方便后期操作,配置一个环境变量。

# 将docker-compose文件移动到了/usr/local/bin,修改了/etc/profile文件。给/usr/local/bin配置到了PATH中

mv docker-compose /usr/local/bin

vim /etc/profile

export PATH=$JAVA_HOME:/usr/local/bin:$PATH

加载文件:source /etc/profile

# 5. Docker-Compose管理MySQL和Tomcat容器

yml文件以key:value方式来指定配置信息

多个配置信息以换行+缩进的方式来区分

在docker-compose.yml文件中,不要是用制表符

# yml文件编写格式如下:

version: ‘3.1’

services:

mysql:                # 服务的名称

restart: always     # 代表只要docker启动,这个容器就会启动

image: daocloud.io/library/mysql:5.7.4   # 指定镜像路径

container_name: mysql                # 指定容器名称

ports:

- 3306:3306                       # 指定端口号的映射

environment:

MYSQL_ROOT_PASSWORD: root    # 指定MySQL的root用户登录密码

TZ: Asia/Shanghai                 # 指定时区

volumes:

- /opt/docker_mysql/data:/var/lib/mysql   # 映射数据卷

tomcat:

restart: always

image: daocloud.io/library/tomcat:8.5.15-jre8

container_name: tomcat

ports:

- 8080:8080

environment:

TZ: Asia/Shanghai

volumes:

- /opt/docker_mysql_tomcat/tomcat_data:/usr/local/tomcat/webapps

- /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

五. 使用docker-compose命令管理容器

在使用docker-compose的命令是,默认会在当前目录下找到docker-compose.yml文件。

# 1. 基于docker-compose.yml启动管理的容器

docker-compose up -d

# 2. 关闭并删除容器

docker-compose down

# 3. 开启 | 关闭 | 重启已经存在的由docker-compose维护的容器

docker-compose start | stop | restart

# 4. 查看由docker-compose管理的容器

docker-compose ps

#5. 查看日志

docker-compose logs -f

六. Docker自定义镜像

       中央仓库的镜像,也是Docker的用户自己上传过去的

# 1. 创建一个Dockerfile文件,并且制定自定义镜像信息

# Dockerfile文件中常用的内容

from: 指定当前自定义镜像依赖的环境

copy: 将相对路径下的内容复制到自定义镜像中

workdir: 声明镜像的默认工作目录

cmd: 需要执行的命令(本命令在workdir下的,cmd可以写多个,只以最后一个为准)

# 几个例子,自定义一个tomcat镜像,并且将index.html部署到tomcat中

from daocloud.io/library/tomcat:8.5.55-jdk11

copy index.html /usr/local/tomcat/webapps

# 2. 将准备好的Dokcerfile相应的文件拖拽到相应的系统中,通过Dokcer的命令制作镜像

docker build -t 镜像名称:[tag] .

# ‘ . ‘ 代表当前目录

# -t 代表以名称:版本号格式格式执行命令

      

 

七. Docker CI, CD

       7.1引言

              项目部署

  1. 将项目通过maven进行编译打包
  2. 将文件上传到指定服务器中
  3. 将war包放在tomcat和war包转成一个镜像,由DokcerCompose去运行容器

  将上述流程再次的从头到尾的执行一次

7.2 CI介绍

CI (continuous intergration)持续集成

  1. 快速发现错误
  2. 防止代码偏离主分支

  7.3 实现持续集成

搭建Gitlab服务器

  1. 创建一个全新的虚拟机,并且至少指定4G运行内存
  2. 安装docker以及docker-compose
  3. docker-compose.yml文件去安装gitlab

参考:https://www.bilibili.com/video/BV1sK4y1s7Cj?p=10

Docker  入门相关推荐

  1. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  2. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  3. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  4. 美亚排名超高的Docker入门书,不止简单易懂

    在美国亚马逊,有一本书的影响力超高的Docker入门书,在操作系统分类中排行第一,超越了众多实力派Docker书,众多五星好评.也许你有所耳闻,这本书就是<深入浅出Docker>. 这是一 ...

  5. Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像

    2019独角兽企业重金招聘Python工程师标准>>> 在前一篇文章:Docker入门系列之一:在一个Docker容器里运行指定的web应用 里, 我们已经成功地将我们在本地开发的一 ...

  6. docker 镜像修改的配置文件自动还原_原创 | 全网最实在的docker入门教程四

    作者:潘吉祥 上一篇我们学习了如何使用Dockerfile制作自己的镜像,不过这种方式更像纯粹的运维方式,作为开发者来说,未免有些小繁琐,一个不小心写错些命令就执行失败,我们还不知道错误在哪,这着实有 ...

  7. Docker(一):Docker入门教程

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

  8. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上

    这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...

  9. docker入门之容器网络

    docker入门之容器网络 首发:arppinging.com 一.网络命名空间1)IP命令2)实例二.网络模型三.容器中常见的网络操作1)指定网络模式2)指定容器的dns地址和hosts解析四.网桥 ...

  10. 深入浅出 ASP.NET Core 与 Docker 入门课程说明

    点击蓝字"角落的白板报"关注我哟 加个"星标★",好文必达! 深入浅出 ASP.NET Core 与 Docker 入门课程说明 <深入浅出 ASP.NE ...

最新文章

  1. play mysql_play framework 2.0 使用 mysql
  2. java和ffmpeg使用内存转码_FFMPEG基于内存的转码实例
  3. 大商创去后门eval-stdin.php,大商创的开源代码都有哪些后门,如何去除大商创后门...
  4. 使用yml多环境配置
  5. hadoop-hdfs-存储模型-架构模型-角色介绍
  6. [有限元] DistMesh Matlab 程序示例
  7. 使用Spring Boot发送邮件
  8. zblock 结构_偷窥Data block 的物理结构
  9. 容器技术学习系列文章总目录
  10. 小米5USB 计算机连接,小米手机连接电脑不显示usb选项
  11. 1096: 水仙花数(函数专题,多实例)(细节较多)
  12. esayExcel自定义注解导出表头批注
  13. 「BIND9」- DLZ(Dynamically Loadable Zones) @20210212
  14. ICC编译器生成优化报告
  15. Java中的空指针异常
  16. 根据imsi获取手机号归属地
  17. 多易教育KAFKA实战(2)-java生产者客户端API示例代码
  18. redis的安装步骤
  19. 网传!微信监听用户聊天记录
  20. Kubeadm-K8s1.20-高可用部署-详细-生产环境(四)

热门文章

  1. Caffe源码(三):layer 分析
  2. Nginx实现URL路径转接
  3. [激光原理与应用-62]:激光器 - 光学 - 怎样测量光斑和光束质量?
  4. 小红书kol达人怎么选?品牌如何做小红书推广?
  5. C语言中字母a等于,C语言中’a’和"a"有什么区别?,c语言中“!a"是什么意思啊...
  6. 股灾是对价值投资的洗礼
  7. 探花交友_第12章_实现推荐系统(新版)
  8. zabbix template pg_monz for PostgreSQL
  9. 哺乳动物细胞转录调控入门---染色质修饰与重塑
  10. Matlab底层算法实现基于动态阈值的自动白平衡算法