9

虽然已经安装了docker很久了,但在以前都没有认真的去学习使用过,只是大概的了解了一下原理就放下不管了,在本周的项目中,潘老师要求我们使用docker来使用数据库,趁此机会,总算是成功的掌握了docker的基本用法。

什么是docker

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。
程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

上面的解释引自阮一峰的博客,就我的理解来说docker就是一个特别轻量级的虚拟机,然后以端口映射的方式让本机访问它的应用程序,从而避免在本机进行繁琐的开发环境配置。

docker必知必会

下面是使用docker过程中必用的一些命令,放到这里当然不是因为他们容易记,而是为了以后方便查阅。

当然要记住下面这些也不难,通过后面的实战示例再加上一两次自己的熟悉基本就能记住了。

  • docker help 查看帮助,help应该是所有命令行程序最重要的命令了
  • docker pull 从Docker Hub中拉取或者更新指定镜像。
  • docker run

    • -d 标识是让 docker 容器在后台运行。
    • -p 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上。
    • -it 使用交互模式
    • --name 定义一个容器的名字,如果在执行docker run时没有指定Name,那么deamon会自动生成一个随机数字符串当做UUID。
    • -e 设置环境变量,或者覆盖已存在的环境变量。
    • –link 连接运行的容器

例如:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest

含义:容器的名字为mysql,将容器的3306端口映射到本机的3306端口,mysql数据库的密码为password ,运行的镜像为mysql/mysql-server:latest

  • docker ps 

    • -a 查看已经创建的容器
    • -s 查看已经启动的容器
  • docker start con_name 启动容器名为con_name的容器。
  • docker stop con_name 停止容器名为con_name的容器。
  • docker rm con_name 删除容器名为con_name的容器。
  • docker rmi img_name 删除镜像名为img_name的镜像。
  • docker exec -it con_name bash 以bash启动该容器

在docker中使用mysql

接下来我将会在docker中新建并启动一个mysql容器,然后以本地访问。

拉取官方镜像

docker pull mysql:5.7.21

创建一个容器并运行

docker run --name mysql -p 3309:3306 -e MYSQL_ROOT_PASSWORD=test -d mysql:5.7.21
容器的名字为mysql,将容器的3306端口映射到本机的3309端口,mysql数据库的密码为test ,容器在后台运行,运行的镜像为mysql:5.7.21

查看一下容器的运行状态

docker ps

clipboard.png

本地访问试试

clipboard.png

clipboard.png

没有任何问题

想要直接对容器进行操作?

使用下面的命令就可以了

docker run -it --link mysql:mysql --rm mysql:5.7.21 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -p'

clipboard.png
这就直接进入了容器的mysql中。

黄庭祥教了我另一个方法,可以理解为上一步方法的分步执行

首先进入容器

docker exec -it mysql bash

clipboard.png
可以发现这个容器和我们的linux基本一样,各种基础的命令都能执行

在容器中启动mysql

mysql -uroot -p -h localhost

clipboard.png

参考文章

docker下的Mysql镜像的使用方法
使用docker的mysql镜像
Docker 入门教程


笙歌会停
1k 声望45 粉丝

代码成就万世基积沙镇海 梦想永在凌云意意气风发