portainer 启动mysql_Docker

Docker

一、开启环境(连接FinalShell)

新建连接d3dd8e88d138194e5db79d3f5f87297d.png

登陆成功界面:e44134e84465d20ad9d8b906901596cb.png

之前用的centos8,现在版本centos7.6:

https://blog.csdn.net/gghhhh7/article/details/106994603?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.compare

参考博客:

https://blog.csdn.net/han_zhuang/article/details/106792385

二、Docker VS 虚拟机

虚拟机:虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。包含系统内核、lib、app等,相对更加重量级

b0644875e0cd2c6aca099614b139d39f.png

6f4e3fef14205d895ffe8144400c401f.png

虚拟机的缺点:

· 资源占用多

· 冗余步骤多

· 启动慢

两者的不同:

· 传统虚拟机会虚拟出一个硬件,运行一个完整的操作系统,然后再这个系统上安装和运行环境

· Docker内的容器直接运行在宿主机的内核上,容器自己是没有内核的,也没有虚拟硬件

· 每个容器间是相互隔离的,每个容器都有自己的文件系统,相互隔离

f9e22361d12a193cb32d0f08b3c89b02.png

1)镜像(image)

docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用

2)容器(Container)

docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序

3)仓库(repostory)

仓库是集中存储镜像文件的地方,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)

仓库分为两种,公有仓库,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的阿里云,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务

1.定义

Docker 是一个开源的应用容器引擎, Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 或Windows机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

docker官网:https://www.docker.com/

docker文档:https://docs.docker.com/

docker hub:https://hub.docker.com/

2.优点

(1)效率高

(2)可移植性强

(3)在同一硬件上运行更多工作负载

3.安装

参考:https://docs.docker.com/engine/install/centos/

1.卸载旧版本docker

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

2.安装需要的安装包/安装相关工具

yum install -y yum-utils

3. 设置镜像的仓库/设置docker下载地址

yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo#国外镜像不推荐

yum-config-manager \ --add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #阿里云镜像 推荐

4.更新yum软件包索引

yum makecache fast

5.安装docker相关引擎/ce是社区版,ee是企业版

yum install docker-ce docker-ce-cli containerd.io

6.启动docker

systemctl start docker

7.测试docker

docker version

8.测试hello world

docker run hello-world0de5b138e84566af79d077fe54a1975f.png

出现即成功!!!

docker run hello-world的运行流程:6d4472849ea47d53e86e903926d740e7.png

9.查看镜像

docker images

了解:

卸载docker

/#1、卸载依赖

yum remove docker-ce docker-ce-cli containerd.io

/#2、删除资源

rm -rf /var/lib/docker

4.阿里云镜像配置

(1)将阿里云镜像文件复制到/etc/docker目录下

(2) 重启docker

service docker restart

5.Docker基本使用

1、底层原理

Docker是一个C/S架构的系统,Docker的守护进程运行在主机上,可以通过Socket从客户端进行访问,Docker-Server可以接收Docker-Client的指令并执行。2d56e3b48a2026a315f8b74489bc0e4e.png

08f4b9d930ace4aac99494fd1ce16e49.png

帮助命令

docker version  # 显示docker的版本信息

docker info     # 显示docker的版本信息

docker 命令 --help  # 查看相关命令的说明

docker命令的官方文档:https://docs.docker.com/reference/

镜像常用命令

(1)docker images:列出本地镜像d0b001efe43e552ec990f9af34a499d6.png

(2) docker search:从Docker Hub查找镜像

语法1:docker search tomcat

语法2:docker search -s 30 tomcat

--automated :只列出 automated build类型的镜像;

-s :列出收藏数不小于指定值的镜像。

(3) docker pull:从镜像仓库中拉取或者更新指定镜像

语法: docker pull tomcat等价于docker pull tomcat:latest

语法:docker pull tomcat

(4) docker rmi -f  xxx

docker rmi : 删除本地一个或多少镜像。

-f :强制删除;

语法:docker rmi -f hello-world

6.容器常用命令

(1) 新建并启动容器--交互式窗口

docker run [OPTIONS] IMAGES [COMMAND] [ARG...]

案例1:

docker run -it 镜像ID

案例2:

docker run -it --name mycentos centos

--name="nginx-lb": 为容器指定一个名称;

使用docker镜像centos以后台模式启动一个容器,将容器命名mycentos 。ddef7eb4a3140e966b97b04ea33f53b9.png

Ctrl+C:退出

此时已在容器里面,docker命令不能使用。且root后面的从之前的系统变成了新的字符串;用Linux的ls命令可以查看:ad14257194eb6285e030991eac6dcf45.png

(2)列出当前所有正在运行的容器

docker ps[OPTIONS]

(2) 退出容器

右击:复制标签,再输入:79b03a4639068e00957f1058cb5b0108.png

79b03a4639068e00957f1058cb5b0108.png

abccfee935989b83f9dc336a118308e8.png

(1) exit

使用docker exec -it 82d3a39baebf /bin/bash命令的话,退出容器依然状态不变,用docker run -it --name mycentos001 centos才可以。或者使用stop命令

步骤:

(1)在1.Ali中:docker run -it --name mycentos001  centosbe15ca4c65199841e9cea9ddbd8ab060.png

be15ca4c65199841e9cea9ddbd8ab060.png

(2)在新的终端2.Ali:docker ps -a  ==》查看容器的状态为UP已启动。219027961f5ca8b1295fee3f6a48c583.png

(3)在1.Ali退出容器:exitf8db098144e14974b07a92a95e4af69e.png

(4)在新的终端2.Ali:docker ps -a  ==》查看容器的状态已关闭43824f8430439529ba200aa8da125325.png

容器停止退出

(3) Ctrl+P+Q

步骤同上(2)

容器不停止退出

使用docker exec -it xxx /bin/bash的错误命令:

在1.Ali中输入docker ps -a查看运行状态为UP的centos,

再docker start xxx启动容器

然后docker exec -it xxx /bin/bashf961605fe0b3093c5eb5022a1dc5f5f1.png

最后再2.Ali中输入docker ps -a查看centos的状态依然是UP。c7fe9fde6ab3fde48752c9c68e60a829.png

c7fe9fde6ab3fde48752c9c68e60a829.png

(3)案例:

docker pull centos

docker run -it --name mycentos0809 centos

exit或者ctrl+P+Q

(4) 启动容器:fa9e27993416a1a14dfb105a489a1726.png

docker start 容器ID或者容器名cc70af31f5bcb4a3cee61547e8f3af88.png

停止容器用stop:d7b0bcf746fb5a0704f6f782adaece76.png

(5) 删除容器:be299e0ef6141fb3af55d6e06f1d44df.png

不能删除已启动的容器:ffdfa6e7d739dc735e2d70544e0d4db4.png

docker rm 容器ID

删除所有容器:

docker rm -f $(docker ps -a -q)

(6) 进入容器

进入容器后使用Linux命令,exit或者Ctrl+p+q可以退出,但是不关容器状态的事。abe06b58d6a368cd7215f7423da24f61.png

docker exec -it 容器ID  /bin/bash

rm -rf webapps

mv webapps.dist webapps

(7) 启动容器--守护式窗口

进去并退出容器18ec860446beb3b4298e4b05c4280d69.png

docker run -d centos

7. docker commitcda3e942e590087706a689401e889a1b.png

docker commit

提交容器副本使之成为一个新的镜像

语法:

docker run -it -p 8080:8080 tomcat

[

-p 主机端口:docker容器端口

-P 随机分配端口

i  交互

t  终端

]

案例1:从Hub上下载tomcat镜像到本地并成功运行

docker run -it -p 8888:8080 tomcat

de4589c6f9e567262cbae3140dec3716.png

docker commit -a='sunhao' -m='del docs'  dd1e6b2b9cf7(正在运行的容器ID)  kgc/tomcat

6a68209135de58dd9f2f9195546fb11d.png

附注:a为作者,m为注释

8. 案例1--Docker安装mysql

(1) docker pull mysql:5.6

(2)

docker run -p 3306:3306--name mysql -v /kgc/mysql/conf:/etc/mysql/conf.d -v /kgc/mysql/logs:/logs -v /kgc/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

密码是123456,连接Navicat时候用

-p 3306:3306:端口映射时候用到,否则Navicat连接不上

-v /kgc/mysql/conf:/etc/mysql/conf.d:挂载,把主机的文件夹/kgc/mysql/conf挂载到mysql容器的/etc/mysql/conf.d文件夹里面

(3) docker ps或者docker ps -a0f1a787b48f43226e4e3652118afd8da.png

(4) docker exec -it 容器id  /bin/bash

(5) 修改阿里云安全组848e8f13756030b54bd9c40c7806b979.png

(6) 测试695086f13a08c559163b1b1a1dbc8952.png

07813e5630ef19f90f0385bedae29c46.png

e5cee22c71b47f21fb7e19c4e627b6c8.png

9.案例2--Docker安装Redis

(1)docker pull redis:3.2

(2)

docker run -p 6379:6379 -v /kgc/myredis/data:/data -v /kgc/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes--requirepass "123456"

(3)vim /kgc/myredis/conf/redis.conf/redis.conf

(5) 阿里云添加安全组策略fdfd5ceee6d3d48b616b6019bd4a6d59.png

(6) 测试7ee57122ee90249730ec1e7fc78cda69.png

ddfdf496acb8735b887eb424959053a6.png

10.Springboot微服务打包成Docker镜像

思路:

(1)构建springboot项目

(2)打包应用

(3)编写dockerfile

(4)构建镜像

(5)发布运行

(1)创建springboot项目(勾选Spring Web)

(2)写个controller测试类

@RestController

public class HelloController{

@RequestMapping("/hello")

public String hello(){

return "hello,kgc";

}

}0fdf85774e377d88cd1cc921cbe66377.png

(3) package生成jar包f746f71b0aa4236cf44cbba1e647e56a.png

(4) 在当前目录中,cmd,输入java -jar demo-xxxx.jare5f5a2384b256bb5d80dbf7c6d92ad92.png

(5) 右击工程,创建Dockerfile

内容:

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]85cbc979634f4786d030772def963622.png

85cbc979634f4786d030772def963622.png

(6)创建目录,并上传jar包和Dockerfile文件到目录上。

docker build -t demo_kgc .4d2dcd90a376f447a28ce4f04e3cd8cc.png

创建Dockerfile文件后,把其删掉,再把我们自己项目的生成的jar包和Dockerfile文件拉到该dockerapp目录下:32b126c34005bb351a6d2474462b04f9.png

7b92a8618a68b818c237481137036493.png

(6) docker images58242cd6e7c3fb6a4160b233421bfea1.png

(7) docker run -d -P --name 工程名 demo_kgcab73b8363ef712ed7e25c6d5138170c2.png

(8) docker ps1936635a01d11f5023e5306c905dcd8f.png

curl localhost:327xx,根据自己电脑生成的5位随机数而定:测试是否通0f0a750bfbd03d7081f16d758cff609c.png

(9) 测试请求:curl localhost:32779/hello8579df067ca66d03618706a9fd561db1.png

运行结果和controller层的一样:6eaa6d7814432e7001045b952cfd0cd0.png

65fe666d11ac0abac43f6e51edcf4997.png

11.docker安装portainer

(1)远程拉取portainer

docker pull portainer/portainer

(2)查看镜像

docker images

(3)构建并运行portainer镜像

docker run -d --name portainer  -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer_data:/data 镜像id

12.通过docker部署tomcat0a121511859ab3926f94734dfaeee2c1.png

1.先拉取一个tomcat:76268585e6769809ffb62cd2d81421d47.png

a5e420883afd9554cda8cc44f1538ac4.png

步骤:1:docker run -it -p 8080:8080 tomcat

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口bc01010ee171046a8e28e44c23a7575f.png

步骤2:新开一个终端并进入:docker exec -it 容器ID  /bin/bash

docker exec :在运行的容器中执行命令

步骤3:修改tomcat默认配置,执行两个命令:

rm -rf webapps

mv webapps.dist webapps9c99e1b4d2b19991e115ec54b7abda51.png

在阿里云服务器中设置网络安全组。

在阿里云服务器添加一个8080端口:4a00866c4c88530cf1389191b2091c7d.png

直接访问tomcata0b95dd676df9966096286ff29662fe9.png

喜欢前端、后端java开发的可以加+qun:609565759,有详细视频、资料、教程,文档,值得拥有!!!希望可以一起努力,加油ヾ(◍°∇°◍)ノ゙!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值