【Docker】Docker官方镜像修改制作,上传至自身Docker Hub仓库使用

版权声明: https://blog.csdn.net/Scirhh/article/details/85248193

    本文章制作的镜像主要是在Docker Hub上拉取镜像,然后进行增加自身需要的软件等。最后上传到自己创建的Docker Hub仓库,最后再由其他机器进行下载验证。
    从零开始制作镜像并上传至Docker Hub将会在后续文章中阐述。


这里以 MySQL为例

    一、从Docker Hub仓库拉取MySQL镜像
[root@7con] docker pull mysql:5.7.24
[root@7con] docker images

# 有如下显示就证明MySQL已经被成功拉取到本地了

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql     5.7.24              ae6b78bedf88        5 weeks ago         372 MB

    二、将容器的3306端口映射到宿主机的3306端口配置文件日志文件数据目录 等都映射到宿主机上
[root@7con] mkdir -p /data/mysql/conf /data/mysql/logs /data/mysql/data
[root@7con] cd /data/mysql
[root@7con] docker run -p 3306:3306 --name sc_mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs/:logs -v $PWD/data/:/mysql -e MYSQL_ROOT_PASSWORD="abc123" -itd f991c20cb508
[root@7con] docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
d8a39e9be192        ae6b78bedf88        "docker-entrypoint..."   14 minutes ago      Up 14 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   sc_mysql

[root@7con] netstat -antulp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      22689/docker-proxy-

# 可以看出,容器的3306端口已经映射到宿主机上了

    三、进入容器,修改mysql配置文件

    编者为了能够好的检验,后面拉取下来的镜像是否是自己上传的,所以在配置文件下增加 # By Scong 字样,如图:

[root@7con] docker exec -it d8a39e9be192 bash
root@d8a39e9be192:/# apt-get update 
root@d8a39e9be192:/# apt-get install -y vim
root@d8a39e9be192:/# vim /etc/mysql/mysql.conf.d/mysqld.cnf

    四、退出容器,将刚刚操作的镜像进行提交上传
[root@7con] docker commit -m="have changes" -a="skon" d8a39e9be192 skon2626/skon-hub:sc_mysql

# -m:提交修改的信息
# -a:维护人的信息
# 紧接着的是之前的容器ID
# skon/skon-hub:Docker Hub仓库,如果没有,默认为Docker的Docker Hub仓库
# sc_mysql:tag标签

[root@7con] docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
skon2626/skon-hub   sc_mysql            77cf957eee86        2 hours ago         419 MB
docker.io/mysql     5.7.24              ae6b78bedf88        5 weeks ago         372 MB

    五、将创建的镜像上传到 自己的Docker Hub仓库,没有的读者可以前往注册。上传成功如下图:
[root@7con] docker login		# 登陆Docker Hub仓库
[root@7con] docker push skon2626/skon-hub:sc_mysql		# 将镜像上传到自己的Docker Hub仓库

     六、从自己的Docker Hub仓库拉取自己制作的镜像
[root@Scong] docker pull skon2626/skon-hub:sc_mysql
sc_mysql: Pulling from skon2626/skon-hub
a5a6f2f73cd8: Pull complete
936836019e67: Pull complete
283fa4c95fb4: Pull complete
1f212fb371f9: Pull complete
e2ae0d063e89: Pull complete
5ed0ae805b65: Pull complete
0283dc49ef4e: Pull complete
a7905d9fbbea: Pull complete
cd2a65837235: Pull complete
5f906b8da5fe: Pull complete
e81e51815567: Pull complete
e22f3dba163f: Pull complete
Digest: sha256:d75751ec13685b8c3ea18a92ebf8e8e1931e23c6f67d14e6825af214ad67f2f8
Status: Downloaded newer image for skon2626/skon-hub:sc_mysql

     七、步骤同 二、三进行操作,检验效果如下图:
[root@Scong] mkdir -p /data/mysql/conf /data/mysql/logs /data/mysql/data
[root@Scong] cd /data/mysql
[root@Scong] docker run -p 3306:3306 --name sc_mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs/:logs -v $PWD/data/:/mysql -e MYSQL_ROOT_PASSWORD="abc123" -itd 77cf957eee86
[root@Scong] docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
e3ce90149d32        77cf957eee86        "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   sc_mysql

[root@Scong] netstat -antulp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      4723/docker-proxy
# 进入容器
[root@Scong] docker exec -it e3ce90149d32 bash

     从图中我们可以看出,vim是可以直接使用的,如果不是自己制作的镜像,是会报-bash:vim :common not found 错误提示,而且也不会有文件末端的标识 # By Scong
     所以,从简单的镜像修改制作,再上传到自己的Docker Hub仓库上,最后再pull拉取镜像测试验证,一次完整的镜像修改制作就完成了。同理,如果想增加一些其他服务,按照文章步骤一样也是可以打包镜像。

     如果想完全自主地制作镜像,那么在下一篇文章,将会阐述 利用Dockerfile完全自主地制作镜像

    感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

猜你喜欢

转载自blog.csdn.net/Scirhh/article/details/85248193