安装docker
这里直接手动安装,如果采用终端指令进行安装也是可以的,终端采用下面的指令:
brew install --cask --appdir=/Applications docker
手动安装需要进入Install Docker Desktop on Mac
这里给出了两个平台,第一个Mac with Intel chip指的是x86框架的mac本,而第二个Mac with Apple chip则指的是苹果的arm,例如最近的m1系列等等。
这里要注意区分,否则安装后由于平台不符会无法运行。
下载好后双击安装包,将docker的图标拖拽进Application文件下,就完成安装。
打开一个新的终端,输入下面的命令检查Docker版本,如果出现图中所示的版本说明安装成功,版本可能略有差别。
docker --version
镜像加速
由于国内的网络问题,很多国外源都是限速或者无法访问的,所以国内有很多三方代理源,例如科大、网易等等,这里使用网易源,如果有海外线路可以跳过。
docker安装后,在桌面上方会有图标。
图标 -> Preferences… 进入docker偏好设置,进入Docker Engine
初始状态应该是全出来的部分,上下红色字忽略掉。
增加镜像源就是要在这里增加,例如增加网易的镜像源。
"registry-mirrors": [
"http://hub-mirror.c.163.com"
]
点击Apply & Resart,增加成功后就是这个样子:
打开一个终端,输入docker info查看,发现下面字样说明成功。
现在中括号里只有一个网易云的源,同样的也可以增加多个源。
Docker Hub
Docker Hub类似于镜像版本的Github,它是存储Docker镜像的仓库,同样的有已经成熟开源的镜像,像mysql、redis等等,也有自己上传的定制化镜像。
可以在Docker Hub注册自己的账号,然后通过命令行docker login,然后根据要求输入用户名和密码来完成登录Docker Hub。登录之后,如果想退出,可以通过docker logout来退出登录。
当然了,登入登出的过程在可视化界面也是可以实现的。
界面虽好,可不要偷懒哦,还是需要熟悉命令行工具的。
搜索镜像
类似于mac安装软件时可以使用brew search搜索目标软件,使用brew install安装目标软件。
docker可以使用dopcker search搜索官方仓库中的镜像,使用docker pull命令来下载目标镜像。
huzd@huzddeMacBook-Pro ~ % docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11413 [OK]
mariadb MariaDB Server is a high performing open sou… 4338 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 847 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 91
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 88
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 49
prom/mysqld-exporter 42 [OK]
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
tutum/mysql Base docker image to run a MySQL database se… 35
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 31
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 30 [OK]
mysql/mysql-router MySQL Router provides transparent routing be… 21
centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
arey/mysql-client Run a MySQL client from a docker container 18 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 16 [OK]
yloeffler/mysql-backup This image runs mysqldump to backup data usi… 7 [OK]
genschsa/mysql-employees MySQL Employee Sample Database 7 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
jelastic/mysql An image of the MySQL database server mainta… 2
centos/mysql-80-centos7 MySQL 8.0 SQL database server 1
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK]
vitess/mysqlctld vitess/mysqlctld 1 [OK]
输出依次为镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建。OFFICIAL为OK就是官方镜像。
拉取镜像
huzd@huzddeMacBook-Pro ~ % sudo docker pull mysql
Password:
Using default tag: latest
latest: Pulling from library/mysql
a330b6cecb98: Downloading
9c8f656c32b8: Downloading
88e473c3f553: Download complete
062463ea5d2f: Download complete
daf7e3bdf4b6: Download complete
1839c0b7aac9: Downloading 2.948MB/13.45MB
cf0a0cfee6d0: Download complete
1b42041bb11e: Download complete
10459d86c7e6: Downloading 1.057MB/104.4MB
b7199599d5f9: Download complete
1d6f51e17d45: Download complete
50e0789bacad: Downloading
latest: Pulling from library/mysql
a330b6cecb98: Pull complete
9c8f656c32b8: Pull complete
88e473c3f553: Pull complete
062463ea5d2f: Pull complete
daf7e3bdf4b6: Pull complete
1839c0b7aac9: Pull complete
cf0a0cfee6d0: Pull complete
1b42041bb11e: Pull complete
10459d86c7e6: Pull complete
b7199599d5f9: Pull complete
1d6f51e17d45: Pull complete
50e0789bacad: Pull complete
Digest: sha256:99e0989e7e3797cfbdb8d51a19d32c8d286dd8862794d01a547651a896bcf00c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ %
这里需要使用root权限哈。
推送镜像
登陆成功后,通过docker push命令可以将自己的镜像推送到Docker Hub中。
先将本地的镜像名字修改为Docker Hub账号名/镜像名
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ % docker tag mysql qqy1997/mysql:latest
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
qqy1997/mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ %
并且在UI界面中也可以看见
上传镜像到公共仓库
huzd@huzddeMacBook-Pro ~ % docker push qqy1997/mysql:latest
The push refers to repository [docker.io/qqy1997/mysql]
bc3da4909d75: Mounted from library/mysql
2ecd2889304a: Mounted from library/mysql
46bb27bfe165: Mounted from library/mysql
16c71bbd693d: Mounted from library/mysql
cf0cecb7358f: Mounted from library/mysql
89638afc97cd: Mounted from library/mysql
2eaac5532d44: Mounted from library/mysql
35e94dafc854: Mounted from library/mysql
97a2a3481f0d: Mounted from library/mysql
b2830993d63a: Mounted from library/mysql
731f7c213603: Mounted from library/mysql
d000633a5681: Mounted from library/mysql
latest: digest: sha256:75e71ac9b332935f396d85965213a64f1bd6fc7c42e9900b106f7af462c599b0 size: 2828
huzd@huzddeMacBook-Pro ~ %
此时可以在官网或者桌面界面进行查看
官网:
软件:
值得注意的是,注册账号时,有个邮箱,会给发送一条验证邮件,如果一直没有去验证的话,终端上显示上传成功(实际也是真成功了),但是网站和客户端软件依然是查询不到上传的镜像的,这个时候去邮箱找到记录验证下,然后刷新下界面就会出现。
删除镜像
删除本地镜像
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
qqy1997/mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ % docker rmi qqy1997/mysql
Untagged: qqy1997/mysql:latest
Untagged: qqy1997/mysql@sha256:75e71ac9b332935f396d85965213a64f1bd6fc7c42e9900b106f7af462c599b0
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ %
使用docker images查看本地有多少镜像,使用docker rmi <镜像名> 删除指定镜像。
此时通过软件命令行和ui界面发现确实目标镜像被删除。
删除仓库镜像
上面的docker rmi <镜像名>指令只是删除本地镜像,与本地有没有login无关,而想要删除仓库镜像可以到官网找到这个镜像。
点击目标镜像,进入详情页。
点击设置(Settings),进入设置。
下滑可以发现Delete repository,点击就可以删除仓库内的镜像。
点击删除后会要求输入镜像名以防止误删。
操作后仓库环境会被删除。
运行Mysql
运行mysql容器
先使用docker images查看本地镜像。
huzd@huzddeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 0716d6ebcc1a 12 days ago 514MB
huzd@huzddeMacBook-Pro ~ %
然后使用下面的命令运行容器:
docker run -p 13306:13306 --name qqy-mysql -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
结果:
huzd@huzddeMacBook-Pro ~ % docker run -p 13306:13306 --name qqy-mysql -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
fac1f8a847cdff3d1c475104ebd7915b5414ca9a456d7bd04f1fef20bcbf7826
huzd@huzddeMacBook-Pro ~ %
涉及参数释义:
run 运行一个docker容器
--name 后面这个是生成的容器的名字qqy-mysql
-p 13306:13306 表示这个容器中使用13306(第二个)映射到本机的端口号也为13306(第一个)
-e MYSQL_ROOT_PASSWORD=root 初始化root用户的密码
-d 表示使用守护进程运行,即服务挂在后台
查看当前docker容器的运行状态:
命令:
docker ps : 查看运行中的容器
docker ps -a : 查看所有创建的容器
结果:
huzd@huzddeMacBook-Pro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fac1f8a847cd mysql:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 3306/tcp, 33060/tcp, 0.0.0.0:13306->13306/tcp, :::13306->13306/tcp qqy-mysql
huzd@huzddeMacBook-Pro ~ %
这里就配置好了,后面的一些配置工作会通过代码完成,再另行记录