docker最详细的学习笔记,2020年

Docker

在这里插入图片描述

1、引言

1.1 环境不一致

开发环境和测试环境、生产环境不一致,导致运行结果不一样!

1.2 隔离性

在不同的系统中运行也会存在问题,Linux是一个多任务多用户的操作系统,

1.3 弹性伸缩

在项目运行高峰情况可能会出现一些其他问题

1.4 学习成本

不同的功能,需要不同的学习成本!

2、Docker介绍

Linux的虚拟化技术发展而来的一个容器化技术(LXC)

  • 虚拟化技术在实际中会有资源限制问题

  • 容器化技术在虚拟化之上发展而来的

在这里插入图片描述

Paas(平台及服务)-》Docker

Docker核心思想

  • 集装箱:将“环境”进行打包
  • 标准化:
    • 运输的标准化
    • 命令的标准化
    • 提供了REST的API
  • 隔离性:Docker运行在集装箱中的内容,是相互隔离的
  • 中央仓库:注册中央,
  • 镜像:集装箱 Image
  • 容器:运行起来的镜像 Container

3、Docker的安装

3、Docker的安装

3.1 下载Docker的依赖环境

安装DOcker之前先需要将依赖环境环境全部下载,安装好!

  • yum-utils
  • device-mapper-persistent
  • lvm2
[root@localhost ~]# yum -y install yum-utils device-mapper-persistent lvm2
3.2 指定Docker的镜像

默认下载Docker是走国外的镜像,速度慢,我们建议设置成阿里云镜像,速度快点

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
3.3 安装Docker

采用yum方式安装

yum makacache fast 
yum -y install docker-ce
[root@localhost ~]# yum makecache fast 
[root@localhost ~]# yum -y install docker-ce
3.4 启动并测试

安装成功后需要手动启动,

systemctl start docker #启动docker

systemctl stop docker #停止

systemctl enable docker #开机自启

[root@localhost ~]# systemctl start docker

[root@localhost ~]# systemctl  enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

[root@localhost ~]# docker run hello-world #测试运行一个hello-world镜像
[root@localhost ~]# docker pull daocloud.io/library/tomcat:8.5.15-jre8
8.5.15-jre8: Pulling from library/tomcat
be666fb3dd35: Pull complete 
83be8b767650: Pull complete 
ad7940329f07: Pull complete 
6007b3fdd150: Pull complete 
6de3789acb85: Pull complete 
2c52f460633d: Pull complete 
c4f88410d7df: Pull complete 
acd0245e2750: Pull complete 
ed136b3264ed: Pull complete 
00a6dbe037a9: Pull complete 
088df73547d8: Pull complete 
d9d00342f8e2: Pull complete 
a826056d1aca: Pull complete 
6d792d98c98a: Pull complete 
Digest: sha256:0400f5d82666cf5aef26a4beac7640f08f9c468e5ef32afb5f6aff46ea6f8561
Status: Downloaded newer image for daocloud.io/library/tomcat:8.5.15-jre8
daocloud.io/library/tomcat:8.5.15-jre8

4、Docker的中央库

在Docker中用来存储镜像的

  • Docker官方的中央仓库:最全,但是下载速度慢
    • https://hub.docker.com
  • 国内镜像:网易蜂巢,daoCloud等等
    • https://hub.daocloud.io/ (推荐使用)
    • https://c.163yun.com/hub
  • 一般在公司内部也会创建docker私服仓库,方便拉取镜像
#需要创建配置文件/etc/docker/daemon.json,并添加如下配置
{
	"registry-mirrors": ["https://registry.docker-ce.com"],
	"insecure-registries":["ip:port"]
}

#重启服务
systemctl daemon-reload
systemctl restart docker

5、Docker的镜像(images)操作[重点]

5.1 拉取镜像

从中央中将镜像(文件)下载到本地

  • docker pull 镜像名称:版本
  • daocloud.io/library/tomcat:9-jdk8-openjdk
[root@localhost ~]# docker pull daocloud.io/library/tomcat:8.5.15-jre8
5.2 查看本地镜像

查看本地已经下载了哪些镜像,镜像信息包括:镜像名称,版本,镜像ID,更新时间,大小

  • docker images
[root@localhost ~]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
daocloud.io/library/tomcat   8.5.15-jre8         b8dfe9ade316        3 years ago         334MB
5.3 删除镜像

docker rmi 镜像ID

[root@localhost ~]# docker rmi aa
Untagged: daocloud.io/library/mysql:5.7.4
Untagged: daocloud.io/library/mysql@sha256:0f3b5658a3fbdbb0283d004b09d326fe827b4139886253a9d51d74e51b9d6808
Deleted: sha256:aa5364eb3d851d4b1fe7f1b5c0a259cbe0d57e87f123d5ae317fbd985bd11fc4
Deleted: sha256:31078e8f536e2fc3915638e41e876c291155e98adbdef614a4dca503b5fa7d43
Deleted: sha256:d9be9ad130f657aed2837dfe01b4d5b82764c51c13962e63fc38bfef381254db
Deleted: sha256:e51fd7c9673669a9c76296e29138a0a6da7eb264e804295c7d9b3f7f05670f1b
Deleted: sha256:ef9333bcb153eee2b0bdf52c6a53c78da22c35deef24b3f43e412604e640c1f3
Deleted: sha256:a3837c37431a2b01578be4a509df04942ccbc287ef885aa6ab02852fd33dfec3
Deleted: sha256:f20d566f307a0107675dc15a9dc5cf827ae3281e4acb6397fb947e713a52d7e2
Deleted: sha256:60da8092846218a71b003b45a7ee553f974112110ffd98a2aa8de93f1a8c2ae1
Deleted: sha256:4c4578a383e11f5ae4b5db0d59e8a1762c184e4fbb54ca3b1ed516ec69c6f693
Deleted: sha256:090e078487b69bd1a30cb1479325367380cf3e69ba8c7a2ea08d1cce8f850b5c
Deleted: sha256:07d12a41728f039246bebc091e14965fee7c61e3958db62673a821bb6d16f4fc
Deleted: sha256:5c61ab866d05354a3bd41c7ccb9d7a799d8da37364fbd586d0b04cd114cfdfaf
Deleted: sha256:36478ba45f40d1a55ba81b3b4cc6fd6c63bab6816a725b1160f610bce4362d51
Deleted: sha256:ae692985325f1fddb9216161ad8f0466f464867988ca390567db794cbfcc2302
Deleted: sha256:8895c381a5d700c5d75b39d8adad98176909fec9bc9cf2ce41b652c8fe87b2e7
Deleted: sha256:29c8e213723f8a4698ffc0d8f33bd0012f9027d5e818f373fcf71459a8df3b7b
Deleted: sha256:7ed169984f83820967dec25d312b5e717e6e717e44b7a0157c187104eeea424e
Deleted: sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef
[root@localhost ~]# 
5.4 镜像的导入和导出

有时候我们可以考虑使用导入和导出将镜像进行保存,这样就减少下载过程

1、导出:docker save -o 导出路径 镜像id

[root@localhost ~]# docker save -o /root/mytomcat b8  #将b8镜像导出到本地,名称为mytomcat
[root@localhost ~]# docker rmi b8
Error response from daemon: conflict: unable to delete b8dfe9ade316 (cannot be forced) - image is being used by running container 6e408f070d7c  #因为容器正在运行

[root@localhost ~]# docker stop mytomcat  #停止容器
mytomcat
[root@localhost ~]# docker ps #查看运行的容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# docker rmi b8 #我们发现不能删除启动和停止容器的镜像
Error response from daemon: conflict: unable to delete b8dfe9ade316 (must be forced) - image is being used by stopped container 6e408f070d7c
[root@localhost ~]#

[root@localhost ~]# docker ps -a  #查看所有的容器(包括已经停止的容器)
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
6e408f070d7c        b8                  "catalina.sh run"   40 minutes ago      Exited (143) About a minute ago                       mytomcat
[root@localhost ~]# docker rm mytomcat  #删除容器
mytomcat

[root@localhost ~]# docker rmi b8
Untagged: daocloud.io/library/tomcat:8.5.15-jre8
Untagged: daocloud.io/library/tomcat@sha256:0400f5d82666cf5aef26a4beac7640f08f9c468e5ef32afb5f6aff46ea6f8561
Deleted: sha256:b8dfe9ade31661d865d11388245a3382365b197786ad6c0077f3567ac03bb570
Deleted: sha256:a31c4bd773fa4d1c1c56eb44d200d3be4bb4a0d31084fb7402db0b7e7e4d740f
Deleted: sha256:646254632b3dc6a3eca043c7bf952d252eec37508f42e115795b25b4bc420e24
Deleted: sha256:078c54c5eadc786663009fe4b1b30c793ef31be09a1218372c94f33893d68be0
Deleted: sha256:236865f1b823601f41a1ee16614aff5934c420f935a2f81815a61cd0a8d03fe0
Deleted: sha256:4877af8b2dbb41cf6ddbe506b3498a86197a0f24b24896d89af38db23777cf09
Deleted: sha256:932865e35aec27c1337325abf51889e82e34d1bad62fec4a010ce3d606ae0ea3
Deleted: sha256:78eaa1bf5ccdab00cce3ef3b34e3fb565d15329723e5b7f93bf60265826c55f8
Deleted: sha256:78367d8bfbdd186003a629384189a2203fd63e22a6f4bc5418a63a9f2581666a
Deleted: sha256:efbd63cd7dbd42723c240102d4228236da91690ba3b297df889ea218d23edebc
Deleted: sha256:fa186606764c107c5db39cc31d7faa724f743576e898c17b9c6147e450d9c370
Deleted: sha256:c8c3ca96eb5fb848ef062913ece0284563dac491320aab7c3e46cebba11acb39
Deleted: sha256:e4a93bc5ab2fe334eb93d265acce6aa0f190b71e9a08b75e6fe0fc4c8ed5cc7c
Deleted: sha256:0f7e33898490bdfec7fabce3b451f60361c7b5bc83c53ef1ab27a8b41969ff4c
Deleted: sha256:0d960f1d4fba2435d731fee5d1e68e25058bc1b22921bb95dbab98149548ce9e
[root@localhost ~]# 

2、导入镜像

  • docker load -i 镜像文件
[root@localhost ~]# docker load -i mytomcat 
0d960f1d4fba: Loading layer  129.3MB/129.3MB
71ce2dc7f761: Loading layer  45.45MB/45.45MB
d1de89c613d4: Loading layer  1.226MB/1.226MB
32ceb20ee08e: Loading layer  3.584kB/3.584kB
d69122875478: Loading layer  3.584kB/3.584kB
1ae7b18f5354: Loading layer  1.536kB/1.536kB
0583af55a445: Loading layer  141.6MB/141.6MB
80bee1a65ead: Loading layer  425.5kB/425.5kB
156545607418: Loading layer   2.56kB/2.56kB
a56217ad4142: Loading layer   5.12kB/5.12kB
362ed0033c5c: Loading layer   7.57MB/7.57MB
990331df9550: Loading layer  134.1kB/134.1kB
1334a29f0bed: Loading layer  16.84MB/16.84MB
10ec38b51da1: Loading layer  2.048kB/2.048kB
Loaded image ID: sha256:b8dfe9ade31661d865d11388245a3382365b197786ad6c0077f3567ac03bb570

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              b8dfe9ade316        3 years ago         334MB

修改镜像名称:

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

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              b8dfe9ade316        3 years ago         334MB
[root@localhost ~]# docker tag b8 tomcat:8.0 #给本地库中镜像重新命名
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              8.0                 b8dfe9ade316        3 years ago         334MB

6、容器(container)操作

6.1 运行容器

将镜像运行起来叫一个容器,如果在运行的过程中本地没有对应的镜像则会自动下载

  • docker run 镜像标识:版本
    • -d 后台运行
    • -p 映射端口
[root@localhost ~]# docker run -d -p 8080:8080 --name mytomcat b8
6e408f070d7c3e546d4602c35ef8b70c99a4706e8bb4dc3c8384ec6235f7d18c
# -d :在容器后台执行
# -p :端口映射     宿主机端口:容器端口  
# --name:启动容器的名称
6.2 查看容器

查看正在运行的容器

  • docker ps

查看所有的运行包括已经停止的容器

  • docker ps -a
  • docker ps -qa #只显示容器的标识
6.3 查看容器日志

查看容器的日志目的是为了方便查看容器的运行过程

  • docker logs -f 容器id

    -f:可以动态查看日志信息

6.4 进入容器内部

进入容器内部我可以直接对容器进行相关操作

  • docker exec -it 容器Id/容器名称 bash
[root@localhost ~]# docker exec -it mytomcat bash
root@269f38bb36e8:/usr/local/tomcat# ls
6.5 复制内容到容器

将宿主机中的内容拷贝到容器内部

  • docker cp 文件名称 容器Id:容器内部路径
[root@localhost ~]# docker cp timg.jpg b7:/usr/local/tomcat/webapps
6.6 容器的启停

启动容器、停止容器、删除容器

  • docker run 创建容器
  • docker start 容器id
  • docker restart 容器id
  • docker stop 容器id
  • docker rm 容器id
[root@localhost ~]# docker stop b7 #停止容器

[root@localhost ~]# docker start b7# 启动容器
[root@localhost ~]# docker rm b7 #删除容器


[root@localhost ~]# docker rm $(docker ps -qa) #删除所有容器 

7、Docker应用(重点)

实现SSM项目的Docker部署!

  • tomcat容器
  • mysql容器
  • 拷贝项目到tomcat容器中
  • 测试
7.1 Docker安装Tomcat
[root@localhost ~]# docker run -d -p 8080:8080 --name tomcat daocloud.io/library/tomcat:8.5.15-jre8
7.2 安装MySQL

建议参考官方说明进行容器安装

https://hub.daocloud.io/repos/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  daocloud.io/library/mysql:5.7.4
[root@localhost ~]# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  daocloud.io/library/mysql:5.7.4
Unable to find image 'daocloud.io/library/mysql:5.7.4' locally
5.7.4: Pulling from library/mysql
a3ed95caeb02: Pull complete 
a9816d489674: Pull complete 
b1f7ef5cc072: Pull complete 
c7110e7a9f56: Pull complete 
d78d8ec4f800: Pull complete 
52e42de90064: Pull complete 
c8a5c40648db: Pull complete 
c535209921b3: Pull complete 
Digest: sha256:0f3b5658a3fbdbb0283d004b09d326fe827b4139886253a9d51d74e51b9d6808
Status: Downloaded newer image for daocloud.io/library/mysql:5.7.4
f04f0045c129bc95a3ae1fefc20f1b9608ba0694b04ba0695c4a76311830bd2e
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (48774327e6fa04165eef426fb17ffa97bcb7ac245105330ef714d327170435c1): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use.

我们发现启动MySQL容器是出现了,端口被占用,原因是因为我们的宿主机中已经安装了一个mysql,它已经将3306端口提前占用了,所有我们不能再将3306端口分配给该容器了!

解决方案:

  • 将宿主机上的mysql停止(建议)
  • 重新修改容器的映射端口
[root@localhost ~]# systemctl stop mysqld #停止mysql服务
[root@localhost ~]# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  daocloud.io/library/mysql:5.7.4
e02feb151320d9efda355b144a0d3dcad989f31e1d3ed90da85e16ac3347105a
7.3 部署项目

1.创建对应的数据库环境

在这里插入图片描述

2.将项目的相关内容修改成docker的环境内容

  • 数据连接信息
  • 路径

3.在maven中进行项目打包

mvn clean package

4.将生产后的war包上传到虚拟机中,然后将其拷贝到tomcat容器中

[root@localhost ~]# docker cp ssm.war tomcat:/usr/local/tomcat/webapps

5.修改项目名,将其改成ROOT,访问时可以不同带项目名了

#只要将war文件上传到tomcat容器中,会自动被解包,我们只需要将ssm文件名修改成ROOT
root@1f033c864f52:/usr/local/tomcat/webapps# mv ssm ROOT

通过浏览器测试项目的执行结果!完美的

在这里插入图片描述

8、数据卷

在我们 部署项目的时候需要拷贝war包到容器中,并且修改容器中项目的信息,不方便!

数据卷:在宿主机中和容器中建立一个目录的映射,可以方便的通过宿主机对应的目录进行文件操作,会自动反应到容器中去了, 这样就可以避免直接操作容器

8.1 创建数据卷

语法:docker volume create 数据卷名称

创建好一个数据卷之后,会自动生成一个对应的目录/var/lib/docker/volumes/数据集名称/_data

[root@localhost volumes]# docker volume create tomcat_volume  #创建数据卷
tomcat_volume
[root@localhost volumes]# ll  #/var/lib/docker/volumes
总用量 24
drwxr-xr-x. 3 root root    19 8月  12 16:25 3a636143e43a437d31b222671c0dc9a70a211546dae1764baf434a7c1ff0344f
drwxr-xr-x. 3 root root    19 8月  12 16:19 9bbdec606342853f8e4f381a4518f8ce7d9be2933d8494f98194752e5c3f4a24
-rw-------. 1 root root 32768 8月  12 17:12 metadata.db
drwxr-xr-x. 3 root root    19 8月  12 17:12 tomcat_volume
8.2 查看数据卷

通过[docker volume inspect 数据卷名称]查看数据卷的详细信息

[root@localhost _data]# docker volume inspect tomcat_volume  
[
    {
        "CreatedAt": "2020-08-12T17:12:03+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/tomcat_volume/_data",
        "Name": "tomcat_volume",
        "Options": {},
        "Scope": "local"
    }
]
8.3 查看所有数据卷

docker volume ls

[root@localhost _data]# docker volume ls
DRIVER              VOLUME NAME
local               3a636143e43a437d31b222671c0dc9a70a211546dae1764baf434a7c1ff0344f
local               9bbdec606342853f8e4f381a4518f8ce7d9be2933d8494f98194752e5c3f4a24
local               tomcat_volume
8.4 删除数据卷

docker volume rm 数据卷名称

[root@localhost _data]# docker volume rm mysql_volume
mysql_volume
8.5 容器数据映射

映射有两种方式:

1、通过数据卷名称,启动容器后会自动将容器对应目录中的内容同步到数据卷中

docker run -v 数据卷名:容器内部目录 镜像id

2、通过具体路径设置

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

采用第一个方式启动容器,并设置数据卷的映射!

[root@localhost _data]# docker run -d -p 8080:8080 --name tomcat -v tomcat_volume:/usr/local/tomcat/webapps b8

采用第二种方式启动容器(推荐使用这种,因为这个可以指定任意目录)

[root@localhost demo]# mkdir /opt/mytomcat_data
[root@localhost mytomcat_data]# docker run -d -p 8081:8080 --name yourtomcat -v /opt/mytomcat_data/:/usr/local/tomcat/webapps b8
b4766a5daabeedf4ff9d6843398072b037d60f3df59836537cab8182c24fa001

修改虚拟机中的ip地址

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

在这里插入图片描述

9、Dockerfile(了解)

我们之前用的mysql和tomcat镜像都是从中央库中下载的。这些镜像都是别人创建好之后上传上去的。

如果我们需要创建自定义镜像就需要一个Dockerfile文件,这个文件中都定义关于自定义镜像的相关信息!

9.1 Dockerfile文件的规范

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

copy:将当前指定的路径文件拷贝到自定义镜像中

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

run:执行命令,可以编写多个

cmd:需要执行命令,在指定的workdir目录下开始执行

#比如:我们需要自己构造一个镜像,将当前目录下载ssm.war项目发布到一个tomcat容器中去
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
run mv ssm ROOT
9.2 通过Dockerfile文件构造镜像

docker build -t 镜像名称:版本 .

#docker build名称需要在Dockerfile文件所在的目录下去执行
[root@localhost ~]# docker build -t mytomcat:1.0.0 .
Sending build context to Docker daemon  16.98MB
Step 1/2 : from daocloud.io/library/tomcat
latest: Pulling from library/tomcat
d6ff36c9ec48: Pull complete 
c958d65b3090: Pull complete 
edaf0a6b092f: Pull complete 
80931cf68816: Pull complete 
bf04b6bbed0c: Pull complete 
8bf847804f9e: Pull complete 
fa776a6e7e37: Pull complete 
586534165c2f: Pull complete 
0f6d126a6962: Pull complete 
9f3317edffb3: Pull complete 
Digest: sha256:df8f09ffd52faac5314185d6d30f5f89dc1488913893e8ecd89d5173c3eb0cff
Status: Downloaded newer image for daocloud.io/library/tomcat:latest
 ---> 2ae23eb477aa
Step 2/2 : copy ssm.war /usr/local/tomcat/webapps
 ---> b1e679b433b5
Successfully built b1e679b433b5
Successfully tagged mytomcat:1.0.0
[root@localhost ~]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
mytomcat                     1.0.0               b1e679b433b5        3 minutes ago       664MB
daocloud.io/library/tomcat   latest              2ae23eb477aa        7 days ago          647MB
daocloud.io/library/tomcat   8.5.15-jre8         b8dfe9ade316        3 years ago         334MB
daocloud.io/library/mysql    5.7.4               aa5364eb3d85        5 years ago         252MB

10、Docker-compose(重点)

在之前创建容器时需要带有大量的参数配置,不利于使用,麻烦!而Docker-compose就非常方便管理我们的容器,而容器的一些信息只需要通过docker-compose.yml文件就可以进行维护了!

10.1 下载并安装Docker-compose

我们下载的docker-compose版本是1.24.1版本:docker-compose-Linux-x86_64

因为这个就是一个可以直接执行的命令文件

#修改文件名
[root@localhost ~]# mv docker-compose-Linux-x86_64  docker-compose

#修改文件的权限
[root@localhost ~]# chmod 777 docker-compose 

#建议将该文件拷贝到/usr/local/bin目录中去
[root@localhost ~]# mv docker-compose  /usr/local/bin/

#配置环境变量
[root@localhost bin]# vim /etc/profile
#添加如下内容:

在这里插入图片描述

[root@localhost bin]# source /etc/profile

#测试docker-compose命令
[root@localhost ~]# docker-compose
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             Specify an alternate compose file
                              (default: docker-compose.yml)
  -p, --project-name NAME     Specify an alternate project name
                              (default: directory name)
  --verbose                   Show more output
10.2 Docker-compose管理容器

采用Docker-compose创建MySQL和tomcat容器!

采用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: 123456 #指定mysqlroot用户的密码
      TZ: Asia/shanghai
    volumes:
      - /opt/docker_tomcat/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_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
      - /opt/docker_tomcat/tomcat_logs:/usr/local/tomcat/logs
10.3 通过Docker-compose命令构建容器

docker-compose up -d #根据docker-compose.yml文件构建容器

[root@localhost ~]# docker-compose up -d #注意在该命令执行的目录下需要存在docker-compose.yml文件

docker-compose down #关闭并删除容器

[root@localhost ~]# docker-compose down

docker-compose start|stop|restart 启动|停止|重启

docker-compose ps #查看哪些容器是由docker-compose进行管理的

docker-compose logs -f #查看日志

11、CICD(后面再说)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值