Docker-制作和运行镜像

本文详细介绍了如何制作包含root用户密码和utf-8字符集的MySQL客户化Docker镜像,以及如何运行、管理镜像及容器,包括数据持久化和端口映射等操作。
摘要由CSDN通过智能技术生成

本文目的是展示docker镜像的制作和运行,以mysql为例。

mysql客户化镜像制作

目标

制作mysql镜像,该镜像以mysql5.6镜像为基础,并实现:
- 添加root用户密码
- 修改配置文件使得默认字符集为utf-8

步骤

建立目录
docker-test/image/joget-mysql-v1

镜像配置文件Dockerfile

FROM mysql:5.6

# 添加root用户密码
ENV MYSQL_ROOT_PASSWORD root
# 修改配置文件使得默认字符集为utf-8
COPY mysql.cnf /etc/mysql/conf.d
COPY mysqld.cnf /etc/mysql/mysql.conf.d

mysql.cnf内容为:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

mysqld.cnf内容为:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

构建镜像
cd到目录joget-mysql-v1,执行:

docker build -t joget-mysql:v1 .

docker build命令:默认会读取目录下名称为Dockfile的文件,如果想使用其它名称的文件可以加入 -f 选项
-t选项: joget-mysql是镜像名称,冒号后边的v1是tag名称
不要忘记最后的点’.’ ,这个是指上下文,这里表示当前目录

镜像管理
列出所有镜像:docker image ls
删除镜像:docker image rm joget-mysql:v1
删除所有无用镜像:docker image prune

mysql镜像运行:容器

目标

  • 将容器的数据保存到宿主机,保证容器在关闭后数据库的数据不丢失
  • 将容器的数据库端口和宿主机端口做映射

步骤

建立目录
docker-test/image/joget-mysql-v1下建立data文件夹,用于保存数据库的数据

启动容器
启动容器

docker run -d \
      --name joget-mysql \
      -p 3307:3306 \
      -v "$(pwd)"/data:/var/lib/mysql \
      joget-mysql:v1

-d: 以后台方式运行
–name: 容器的名称,可用该name来操作容器
-p: 用于宿主和容器的端口映射,冒号前是宿主的端口,冒号后是容器暴露出来的端口
-v: 用于宿主和容器的目录映射,这里将docker-test/image/joget-mysql-v1/data目录作为容器/var/lib/mysql目录的映射
joget-mysql:v1表示该容器基于什么镜像运行

检查容器

可以通过日志命令查看容器运行日志:docker logs joget-mysql

也可以进入容器进行检查,进入的命令为:docker exec -it joget-mysql bash

进入容器后,测试数据库连接是否正常:mysql -uroot -p

容器管理

关闭容器:docker container stop joget-mysql
关闭后可以使用start再启动:docker container start joget-mysql
如果关闭容器后,以后不想再启动了,可以删除该容器:docker rm joget-mysql
也可以使用命令prune删除所有不在启动状态的容器:docker container prune

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值