docker教程

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 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月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
103 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
1月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1091 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
28天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
1931 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
397 3
|
2月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
63 1
|
2月前
|
定位技术 文件存储 网络架构
Docker部署PhotoPrism、Immich图片管理应用,无需公网IP远程访问教程
除了Synology、QNAP、TerraMaster等品牌的NAS设备内置图库功能,市面上还有多种备受欢迎的第三方应用,如PhotoPrism、Immich、LibrePhotos、Piwigo、Photoview等。这些应用不仅提供强大的图片管理能力,还可通过Docker轻松部署。借助贝锐花生壳服务,即使没有公网IP也能实现远程访问,突破地理限制,提升数据可访问性和安全性,让用户随时随地管理私人图库。
196 1
|
2月前
|
存储 应用服务中间件 nginx
|
2月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
72 0
|
3月前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
下一篇
DataWorks