专栏首页技术从心了解下docker的基本操作? 如何在docker安装mysql?

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

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 -

关注我

每天进步一点点

本文分享自微信公众号 - 技术从心(gh_d845efe513db),作者:李依金

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IDEA连接Docker一键发布项目

    首先在自己的虚拟机或服务器上安装上docker具体的步骤可以看下菜鸟驿站的教程:https://www.runoob.com/docker/centos-doc...

    技术从心
  • IDEA中一键部署项目到Docker?

    Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后...

    技术从心
  • Java设计模式|工厂方法模式

    工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。

    技术从心
  • Java开源博客My-Blog之docker容器组件化修改

    前言 5月13号上线了自己的个人博客,《Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦》,紧接着也在github...

    我是十三
  • Docker1.12尝试

    前言:在docker1.12中默认增加了swarm mode 编排功能,并且官方支持更多的插件来进行docker的网路和外接存储插件,不过目前测试swarm m...

    BGBiao
  • docker 安装与使用

    之前docker 没有系统整理,现在经常会重新安装docker,部署docker环境,进行重启的创建和操作,下面进行记录和备忘:

    xuyaowen
  • Docker简介、安装、基本配置

    主要架构为:镜像(images)、容器(container)、仓库(repository)

    PayneWu
  • docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤: 一、mac/windows平台的安装 docker是在linux内核基...

    菩提树下的杨过
  • 【云+社区年度征文】我与腾讯云。

    我是一个程序员,因此比较需要一台自己的服务器,配置呢不需要太高,平时跑一些小项目,和数据库的测试。一次偶然的机会,接触到腾讯云,当时是一百元一年,一口气就买了三...

    崔笑颜
  • Deepin20安装docker

    deepin 属于 debain 系,跟 Ubuntu 相似,由国人开发。现在作为我的主力开发环境,使用下来还不错,虽不如 windows, mac 的整体流...

    caoayu

扫码关注云+社区

领取腾讯云代金券