docker教程

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: docker教程

docker教程

https://www.bilibili.com/video/BV1CJ411T7BK/?p=21&spm_id_from=pageDriver&vd_source=e1185f07aed9e4e3a5cca01b93ae9709

a64615d9cd9f4651a4405e92d6e24029.png

07-docker命令-镜像相关命令

1、查看镜像

docker images

2、搜索镜像

docker search redis

注意:在终端交互的界面里不会出现官方维护的版本号,所以需要自己去官网hub.docker.com上面查看版本。

3、拉取镜像

docker pull redis

注意:默认是latest版本的软件

docker pull redis:5.0 这个就是指定对应版本的软件镜像

4、删除镜像

docker rmi 【对应docker镜像的ID】

注意:当存在相同软件镜像但是版本不同时,其镜像ID是一样的所以这时会删除失败。这个时候需要执行docker rmi redis:TAG

注意:一次性将所有镜像全部删除的命令 docker rmi ·docker images -q·


08-docker命令-容器相关命令1

1、查看容器

docker ps 只能查看正在运行的容器

docker ps -a 查看所有的容器

2、创建容器

docker run -it --name=c1 centos:7 /bin/bash

含义是:创建并运行一个容器,容器的名字是c1,并且启动容器打开的第一条指令是/bin/bash,-i:表示无客户端连接时保持运行状态 -t:表示打开容器并启动一个终端命令窗口。exit可以退出容器。-it选项启动的容器退出之后容器就关闭了。

docker run -id --name=c2 centos:7 /bin/bash

-d的含义是创建的容器后台运行

3、进入容器

docker exec -it c2 /bin/bash

进入c2容器并执行/bin/bash程序


09-docker命令-容器相关命令2

4、启动容器

docker start 容器名称

5、停止容器

docker stop c2

6、删除容器

docker rm 容器ID或者容器名称

docker rm ·docker ps -aq·删除所有容器

正在运行的容器不能够被删除,需要提前停止再删除

7、查看容器信息

docker inspect c2

查看c2容器的信息


10-docker容器数据卷-数据卷概念及作用

数据卷产生背景:

1.docker容器删除后,在容器中产生的数据也会随之销毁,怎么保持数据的持久化呢?

2.docker容器和外部机器可以直接交换文件吗?

3.容器之间想要进行数据交换吗?

数据卷:数据卷是宿主机中的一个目录和文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步,一个数据卷可以被多个容器挂载,一个容器也可以被挂载多个数据卷。

数据卷作用:

容器数据持久化

外部机器和容器间接通信

容器之间数据交换


11-docker容器数据卷-配置数据卷

docker run -v 宿主机目录文件:容器内目录(文件)

注意事项:

1.目录必须是绝对路径

2.如果目录不存在,会自动创建

3.可以挂载多个数据卷


docker run -it --name=c1 -v /root/data:/root/data_container centos:latest /bin/bash

创建c1容器并将宿主机下的/root/data目录挂载到c1容器下的/root/data_container目录


docker run -it --name=c2 -v ~data2:/root/data2 -v ~/data3:/root/data3 centos:7

一个容器可挂载多个目录


12-docker容器数据卷-配置数据卷2

两个容器挂载同一个数据卷,两个容器可以交换数据


13-docker容器数据卷-数据卷容器

多容器进行数据交换

1.多个容器挂载同一个数据卷

2.数据卷容器


docker run -it --name=c3 -v /volume centos:7 /bin/bash

在这里并不会指定宿主机目录只会指定容器的目录。这样就创建了数据卷容器


docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash

docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash


14-docker应用部署-部署mysql

案例需求:

在docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server


案例:实现步骤

1.搜索mysql镜像

2.拉取mysql镜像

3.创建容器

4.操作容器中的mysql

MySQL部署

容器内的网络服务和外部机器不能直接通信

外部机器和宿主机可以直接通信

宿主机和容器可以直接通信

当容器中的网络服务协议被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。

这种操作称为:端口映射

docker search mysql
mkdir ~/mysql
cd ~/mysql
docker run -id\
-p 3307:3306\
--name=c_mysql\
-v $PWD/conf:/etc/mysql/conf.d\
-v $PWD/logs:/logs\
-v $PWD/data:/var/lib/mysql\
-e MYSQL_ROOT_PASSWORD=123456\
mysql:5.6

-p 3307:3306\ 将容器的3306端口映射到宿主机的3307端口

-v $PWD/conf:/etc/mysql/conf.d\ 将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf.配置目录

-v $PWD/logs:/logs\将主机当前目录下的logs目录挂载到容器的/logs。日志目录

-v $PWD/data:/var/lib/mysql\ 将主机当前目录下的data目录挂载到容器的/var/lib/mysql.数据目录

-e MYSQL_ROOT_PASSWORD=123456\初始化root用户密码


15-docker应用部署-部署tomcat

Tomcat部署

案例:需求

在Docker容器中部署Tomcat,并通过外部机器访问Tomcat部署的项目。

案例:实现步骤

1.搜索tommcat镜像

2.拉取tomcatr镜像

3.创建容器

4.部署项目

5.测试访问

docker search tomcat
docker pull tomcat
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat\
-p 8080:8080\
-v $PWD:/usr/local/lomcat/webapps\
tomcat

-p 8080:8080\ 将容器的80080端口映射到自助机的8080端口

-v $PWD:/usr/local/lomcat/webapps\ 将主机中当前目录挂载到容器的webapps


16.docker应用部署-部署nginx

步骤大同小异


17.docker应用部署-部署redis

步骤大同小异


18.dockerfile-镜像原理

Docker镜像本质是什么?

Docker中一个centos镜像为什么只有200MB而一个操作系统镜像有几个G?

Docker中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70MB?

操作系统组成部分:

进程调度子系统

进程通信子系统

内存管理子系统

设备管理子系统

文件管理子系统

网络通信子系统

作业控制子系统

Linux文件系统由bootfs和rootfs两部分组成

bootfs:包括bootloader(引导加载程序)和kernel内核

rootfs:root文件系统,包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件

不同的Linux发行版,bootfs基本一样而rootfs不同,如ubuntu,centos

Docker镜像原理:

Docker镜像室友特殊的文件系统叠加而成

最底端是bootfs,并使用宿主机的bootfs

第二层是root文件系统rootfs,称为base image

然后再往上可以叠加其他的镜像文件。

同一文件系统技术能够将不同的层整合成一个文件系统为这些层提供一个统一的视角,在用户看来,只存在一个文件系统。

一个镜像可以放在另一个镜像的上面,位于下面的镜像称为父镜像,最底部的镜像称为基础镜像

当从镜像启动容器是,Docker会在最顶层加载一个读写文件系统作为容器。


19.dockerfile-容器转为镜像

Docker镜像如何制作

1.容器转为镜像

docker commit 容器id 镜像名称:版本号

docker save -o 压缩文件名称 镜像名称:版本号

docker load -i 压缩文件名称

在这个过程中,通过数据卷方式挂载的数据不会生效


20.dockerfile-dockerfile概述及关键字

Dockerfile是一个文本文件

包含了一条条的指令

每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像

对于开发人员:可以为开发团队提供一个完全一致的开发环境

对于测试人员:可以直接拿开发时所构建的镜像或者同贵哦Dockerfile文件构建一个新的镜像开始工作了

对于运维人员:在部署的时候可以实现应用的无缝移植


21.dockerfile-案例部署 springboot项目

案例需求:

定义dockerfile,发布springboot项目


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
226 0
|
2月前
|
Oracle 关系型数据库 数据库
|
4月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
53 0
|
4月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
47 0
|
4月前
|
Docker 容器
百度搜索:蓝易云【docker容器/etc/hosts文件修改教程】
现在,你已经成功修改了Docker容器中的 `/etc/hosts`文件,添加了主机名和IP地址的映射关系。这使得在容器内部可以使用指定的主机名来访问相应的IP地址。请确保在修改 `/etc/hosts`文件时小心,避免错误的配置导致意外的问题发生。
121 0
|
4月前
|
大数据 数据管理 Docker
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
271 0
|
21天前
|
关系型数据库 MySQL 数据库
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
27 1
|
21天前
|
Ubuntu Docker 索引
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
48 0
|
1月前
|
Linux Docker 容器
阿里云安装docker教程
阿里云安装docker教程
62 0
|
1月前
|
Shell 网络安全 开发工具
docker 安装 gitlab 教程详解
docker 安装 gitlab 教程详解
52 0