Docker API
在Docker的生态系统中,存在下列三种API:
Reistry API:与存储Docker镜像的Registry相关的功能。
Docker Hub API:与Docker Hub相关的功能
Docker Remote API:与Docker守护进程相关的功能。
其中,Docker Remote API是使用最为频繁的API类型
启动Remote API
Remote API主要用于远程访问Docker守护进程从而下达指令的。
因此,我们在启动Docker守护进程时,需要添加-H参数并指定开启的访问端口。
通常,我们可以通过编辑守护进程的配置文件来实现。
不过对于不同操作系统而言,守护进程启动的配置文件也不尽相同:
Ubuntu系统:/etc/default/docker文件
Centos系统:/etc/sysconfig/docker文件
在该配置文件最后,添加内容如下:
OPTIONS='-H=tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
修改完成后执行如下命令,重启Docker守护进程:
systemctl stop docker
systemctl start docker
此时,我们可以在其他机器上执行如下命令来测试一下:
http://ip:2375/images/json
远程连接:
先拉取一个MySQL容器
docker pull docker.io/mysql
然后创建并启动容器
docker run -d -p 3361:3306 --name darling_mysql -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysql:latest
aca4efec90593207a3fa17455030ed2973eefba82d32b005d7dd232408c7f45a
查看容器是否创建成功
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aca4efec9059 docker.io/mysql:latest "docker-entrypoint..." 5 seconds ago Up 4 seconds 33060/tcp, 0.0.0.0:3361->3306/tcp darling_mysql
然后进入到你自己的容器中
[root@localhost ~]# docker exec -it darling_mysql
修改配置:
赋予权限
ysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
刷新进程
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
修改权限
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.02 sec)
修改密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
刷新进程
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
最后到MySQL相应的软件进行连接就可以了。