目录

  1. docker 入门到放弃1----安装、注册、使用并上传自定义镜像
  2. docker 入门到放弃2----拉取镜像,安装常用环境并上传
  3. docker 入门到放弃3-- docker安装mysql8.0并启动
  4. docker 入门到放弃4-- docker容器内启动配置mysql8.0,完成外部访问

    容器技术,虚拟机,运维工具,快熟部署,环境移植,相关概念就不过多做介绍了,这里就稍微引用下:看这里或者自己搜索就好了。说说我开始使用docker的动机,除了它总是频率慢慢变高地出现在我的耳朵之外,还有自己拿到一台新机器(云虚拟机)时总是要先花些装一堆工具,当然,我也没拿到过很多机器,那么活用docker镜像似乎能帮助我稍微优化下工作。

   docker还有很多很厉害的地方,这里就按照自己的学习认知一点一点的凿冰。

一、先找个地方安装docker

先看看自己是什么系统:

$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 
$ cat /proc/version
Linux version 3.10.0-693.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Sep 12 22:26:13 UTC 2017

   于是我便是直接参照这里来装的。

二、注册一个docker账号

  这个简单,直接来就好了:https://hub.docker.com/signup

  需要注意的是这个docker账号名后面应该是后面自己上传image会经常要用到的。我这里叫antony314。

  接下来的目标,先走通一波上传自己的常用镜像。

三、上传自己的常用镜像。

一般来说有两种方式,

  •   第一种是通过Dockerfile build一个,先放着不研究,以后再看。
  •   第二种方式,站在巨人的肩膀上,拉一个下来做些改动再上传,好像比较简单。

这里用的是docker官方的centos镜像,在其上设置环境、安装工具、等等之后尝试作为自己的镜像:

rocky9安装luajit rocky9安装docker后怎么注册_python

由于走通之后才回来写的博客,进入容器后想看看容器里的文件系统有什么变化,df/du弄混了,文件出来了一大片,记录都弄没了。所以打算重新来一次补上命令和截图:    还经历了删除已有容器镜像的一点小插曲

这里是拉取镜像和进入容器,因为小插曲导致没法得到当时的样子了:

   docker pull ..

   docker run -t -i centos /bin/bash

这是进入容器内时查看df:

rocky9安装luajit rocky9安装docker后怎么注册_image_02

退出容器再查看df:

rocky9安装luajit rocky9安装docker后怎么注册_容器_03

并不能看懂什么。

于是再次进入容器,结合上面小插曲下面其实是又重新run了一个容器,所以可以看到id是不同的:

rocky9安装luajit rocky9安装docker后怎么注册_容器_04

随便做些环境:

[root@67a06fa62c7d /]# useradd release                                                                                                                                                   
[root@67a06fa62c7d /]# passwd release
[root@67a06fa62c7d /]# useradd release
[root@67a06fa62c7d /]# passwd release

python一般是系统自带的2.7,官方的centos应该比较纯净,没有python3:

[root@67a06fa62c7d ~]# python
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[root@67a06fa62c7d ~]# python3
bash: python3: command not found

由于经常使用python3,于是打算自己下载安装一个,找到官网最新版的python下载:

cd /root
mkdir tools
cd tools
[root@67a06fa62c7d tools]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
bash: wget: command not found

发现系统没有wget,于是先yum装一个:

[root@67a06fa62c7d tools]# yum -y install wget

至此,已经对系统做了些个性化,尝试将现在这个作为镜像上传吧,退出并提交镜像

[root@67a06fa62c7d tools]# exit 
exit
[root@小林のCentos 16:19:53 ~]>28$ docker commit -m="v1 update from of-centos" -a="antony" 67a06fa62c7d antony314/centos:v1

查看现在有的镜像: 

rocky9安装luajit rocky9安装docker后怎么注册_rocky9安装luajit_05

可以看到没做多少改动,size居然变大了70多M,唯一装的wget也才是几百K的东西,这个疑问先放这里吧。不过这应该是容器的大小,image的话应该还有相应的压缩,印象中依赖的image以及最后上传的自定义image好像都是几十M。

准备push到docker hub:

rocky9安装luajit rocky9安装docker后怎么注册_rocky9安装luajit_06

被拒绝,想想中间果然是少了点什么,怎么确定权限是可以提交到hub的antony314的呢。于是查了下,是要先登录

[root@小林のCentos 16:26:57 ~]>32$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: antony314 
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

登录成功。可以看出docker和git的验证登录态的方式是不同的,docker可以直接在cli上登录。应该是由你的虚机上的cli和docker的系统常驻进程去hub做了登录验证和登录状态的保存到文件系统。颇有些浏览器的感觉,具体细节便暂不多做研究。

于是再次尝试push:

[root@小林のCentos 16:29:37 ~]>33$ docker push antony314/centos
The push refers to repository [docker.io/antony314/centos]
74f202b62733: Pushed 
071d8bd76517: Mounted from library/centos 
v1: digest: sha256:594645e9defd3dce5d2ad0254c0f3ae67fe9fd6af584e7b9ba8683a129df4004 size: 741

成功,登录hub 看到了自己的第一个镜像。至此,以上第一波docker操作结束。接下来在这个镜像的基础上再装些自己的常用软件形成自己的常用系统镜像。然后再保存到hub。

rocky9安装luajit rocky9安装docker后怎么注册_容器_07

可以看出个人提交整个过程还是比较简单和便捷的。如果是组织账号,提供团队的运维部署功能的话,相应的就是复杂度更高的权限管理和验证啦。