前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >了解下docker的基本操作? 如何在docker安装mysql?

了解下docker的基本操作? 如何在docker安装mysql?

作者头像
技术从心
发布2019-08-07 12:00:30
1.1K0
发布2019-08-07 12:00:30
举报
文章被收录于专栏:技术从心技术从心技术从心

1、什么是docker?

百度:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

小编的理解:docker就类似于在自己的windows的安装了一个虚拟机,在这个虚拟机中我们可以安装我们所需要的东西比如安装linux,redis,zookeeper,mysql等,而docker也类似也可以在docker中安装相应的软件然后通过外网去访问。需要注意的是docker是容器而不是虚拟机。

Docker是一个集开发、打包、运行应用于一体的开放式平台。Docker可以用来快速交付应用。使用Docker,你可以将应用程序从你的基础设施中分离出来,并将基础设施当做一个管理平台。Docker可以加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期。Docker通过结合内核容器化特点和工作流,并使之工具化来实现这一切,帮助管理和发布你的应用。

2、对比虚拟机与Docker

Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

3、docker的安装

3.1、接下来我们看看docker是如何在linux下安装的吧!

官方的安装方式:

添加docker源 /etc/yum.repos.d/docker.repo [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7 enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg

安装docker。 yum install docker-engine 启动docker服务。 systemctl start docker 查看docker状态 docker version docker info 卸载docker yum remove docker-engine 删除docker残留文件 rm -rf /var/lib/docker

推荐阿里云的安装方式:

# step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE yum makecache fast yum -y install docker-ce

设置阿里云加速器:

cat <<EOF > /etc/docker/daemon.json { "registry-mirrors": ["https://lj4z45sy.mirror.aliyuncs.com"] } EOF systemctl daemon-reload systemctl restart docker

3.2、找镜像:

在阿里云找镜像 https://cr.console.aliyun.com/?spm=a2c4g.11186623.2.4.1reY5N#/imageSearch 官方镜像库 https://hub.docker.com/

3.3、镜像的操作:

搜索镜像 docker search java 下载镜像 docker pull java 存放下载临时文件的地方 /var/lib/docker/tmp-old 查看已有镜像 docker images 删除一个镜像 docker rmi java 删除所有镜像 docker rmi -f $(docker images) 导出镜像 docker save -o my.tar my 导入镜像 docker load -i my.tar

3.4、容器的运行

运行容器 docker run java /bin/echo 'hello world!' docker run -d -p 91:80 nginx docker run -it --name haproxy --link app1:app1 --link app2:app2 -p 6301:6301 -v ~/haproxy:/tmp haproxy /bin/bash docker run -i -t --entrypoint=/bin/bash image_name -d 后台运行 -P 随机端口影射 -p 指定端口影射 -i 启动后不要退出 -t 打开一个命令行 --name 为容器命名 --link app1:app1 映射其他容器的名字到hosts -v 映射共享文件夹 创建tomcat容器 docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat docker cp NginxDemo.war 3cb492a27475 :/usr/local/tomcat/webapps

3.5、容器的操作

查看所有容器 docker ps -a 查看所有容器状态 docker stats 查看容器进程 docker top 078da0113325 查看容器端口 docker port 078da0113325 查看一个容器的详情 docker inspect 7dcc08e30c6d 停止容器 docker stop d0e06b96fbcb 强制停止容器 docker kill d0e06b96fbcb 启动已停止的容器 docker start d0e06b96fbcb 重新启动 docker restart d0e06b96fbcb 进入容器 docker exec -it d0e06b96fbcb /bin/bash 删除容器 docker rm d0e06b96fbcb 删除所有容器 docker rm -f $(docker ps -a -q) 保存容器为新的镜像 docker commit 078da0113325 my

4、接下来看看如何在docker里安装一个mysql吧~

如图是我的虚拟机:

使用xhell连接:

systemcctl start docker 这个命令是centos7.0以上的启动docker的命令

安装完以后使用docker images 查看docker的镜像

安装的东西比较多

使用如下的命令搜索mysql的服务 docker search mysql 得到的结果如下图

安装命令 :5.5为指定版本 docker pull mysql:5.5

我这安装的是最新的

运行一个容器

docker run -p 3306:3306 --name tensquare_mysql -e MYSQL_ROOT_PASSWORD=root -d centos/mysql-57-centos7

–name为给制作的容器起个名字

-p为端口映射,设置为默认的3306

-e MYSQL_ROOT_PASSWORD 为设置密码

centos/mysql-57-centos7 为指定哪个镜像 ,如果是最新版本,不需要写版本,如果指定版本, 需要在其后,用:版本名称。

docker的-d参数有两种,我想这一点你可能有点弄混了。docker -d是当启动docker daemon的时候,不存在任何container的概念,仅仅是是启动一个后台daemon进程。 涉及到容器启动的时候,有可能会使用docker run -d,此时的-d是docker run命令的参数,而不是docker的参数。

另外docker run -d的作用,多说一句的是,此处的-d实现dettach的作用,即对于你docker run的前台进程,该进程不对容器进行stdin,stdout,stderr的attach。

接下来我们就可以使用sqlyog工具连接docker上的mysql了

到此就结束了我们的mysql的安装了。

觉得文章不错,记得转发分享给更多同学哦~

点赞、转发和辣条会提升颜值哦~

- END -

关注我

每天进步一点点

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档