如何通过docker运行容器

本文以mysql为例,记录如何在docker hub上查找对应的镜像,并运行。

查找镜像

在docker hub中找到mysql的官方镜像(https://hub.docker.com/_/mysql),其实可以直接在控制台使用docker search mysql 查找mysql镜像,直接run,但是很多配置信息没办法找到。所以建议先看一下官网里的配置教程,里面讲述了很多如何配置mysql的docker命令。

 基本启动命令

通过命令启动对应的容器,其中,docker run说明要启动某一个镜像,OPTIONS 是你在启动时给容器配置的参数。具体有什么参数可以通过docker run --help查看。

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

官方提供的最基本的命令拉取并运行mysql,下面是官方提供的最基础的启动命令,直接运行就可以启动一个mysql的容器。

  图中红框的就是我们在启动时配置的容器属性(OPTIONS ),例如,--name 代表后面红框是这个容器名称。假如我们在一个docker 中启动了两个mysql,我们可以通过--name 来区分每个容器(例如 some-mysql 分别为mysql1,mysql2)。mysq:tag则代表我们要启动的镜像名称和版本号,没有指定tag则会运行最新的镜像。如果我们本地没有对应的版本镜像,那么docker会先从仓库中拉取对应的镜像,再启动。

自定义容器属性。

我们在使用一个软件时,往往会修改对应的配置文件(例如mysql暴露的端口,角色和密码)。那么在docker上运行对应的容器,我们可以在启动时就指定对应的配置信息。

指定配置文件

在docker hub的帮助文档中,往往会说明运行容器的配置文件所在位置。我们可以通过命令,让容器在启动时使用我们准备的配置文件。

$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

如果没有配置文件,我们同样可以通过命令的方式指定对应的属性,例如指定表的默认编码为 UTF-8(utf8mb4):

docker run --name some-mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

转存docker数据

一般在官网文件中,都有说明如何将docker的数据转存到主机系统上,例如对于mysql来说,可以运行以下命令,:

$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

进入容器

当我们需要进入运行的容器进行操作时(例如登录容器中的mysql),那我们要先要进入容器,首先,通过docker ps查看正在运行的容器信息:

 然后使用docker exec -it 容器id /bin/bash进入容器:

docker exec -it 83df0be493c /bin/bash

之后就相当于在本机上操作一样了。

如果容器已经启动,要想添加自启:

docker update --restart=always xxxxx

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值