docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
语法
docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]
OPTIONS说明:
-
-u :登陆的用户名
-
-p :登陆的密码
实例
登陆到Docker Hub
docker login -u 用户名 -p 密码
登出Docker Hub
docker logout
获取官方指定镜像
如果速度很慢,可以更换仓库加速,比如Mac本地配置:
"registry-mirrors": [
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
]
拉取镜像命令及输出:
# 命令
$ docker pull mermade/openapi-gui
# 输出
Using default tag: latest
latest: Pulling from mermade/openapi-gui
Digest: sha256:3659dff712e3db315f5658502b7b0e0e88a52c9fe33ac1a540cc160ea3ea8589
Status: Image is up to date for mermade/openapi-gui:latest
docker.io/mermade/openapi-gui:latest
修改 && 制作新镜像
有些场景我们需要修改官方镜像的配置,比如修改端口等,我们以官方镜像:mermade/openapi-gui为例,默认启动端口是3000,假设我们现在需要修改为8080。
- 修改openapi-gui.js文件中的3000为8080,可以使用挂载命令或者docker cp命令完成,不同的镜像修改的文件不一样
- docker cp命令可以实现容器和物理机器的文件传递
- docker run启动容器,通过docker ps获取容器CONTAINER ID
$ docker run openapi-gui-debug2
> openapi-gui@1.2.2 start /usr/src/app
> node openapi-gui.js
OpenAPI GUI server listening at http://:::8080
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43f46c1bd2db openapi-gui-debug2 "npm start" 2 minutes ago Up 2 minutes 3000/tcp amazing_hofstadter
- docker commit命令将容器制作为新的本地镜像,假设CONTAINER ID为43f46c1bd2db,新的镜像名字为openapi-gui-debug2
$ docker commit 43f46c1bd2db openapi-gui-debug2
可以使用docker commit命令来完成,docker commit可以从容器创建一个新的镜像。 语法格式:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
可以使用docker images查找对应的镜像,然后使用docker tag打上新标签,推到对应的镜像仓库即可,部分命令如下:
# 查看镜像
docker images | grep openapi-gui
# 重新打tag
docker tag openapi-gui-debug2 image-beta.xxx.xxx.com/projects/smart-xx/openapi-gui-debug:0.2
# 推镜像到新仓库
docker push image-beta.xxx.xxx.com/projects/smart-xx/openapi-gui-debug:0.2