Docker的一些命令
制作镜像(docker build)
# 确保当前目录下有Dockerfile,注意最后的点 .
>>>docker build -m "message" -a "author" -t="imagename:tag" .
获取docker容器的ip(docker inspect)
# 开启新的终端,查看正在运行的容器
>>>docker ps -l
# 查看输出结果,找到对应容器的CONTAINER ID
# 查看容器的ip
>>>docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINER ID
保存对镜像的修改(docker commit)
在对镜像进行修改之后,默认是不保存的,如果需要保存,需要使用docker commit命令
>>>docker commit -m "message" -a "author" CONTAINER ID imagename:tag
删除容器(docker rm)
注意区分容器与镜像之间的区别
# 删除容器
>>>docker rm CONTAINER ID
# 清理所有处于终止状态的容器
>>>docker rm $(docker ps -a -q)
删除镜像(docker rmi)
要确保此镜像没有开启容器
要确保此镜像不是作为本地其他镜像的依赖
>>>docker rmi IMAGE ID
修改镜像信息(docker tag)
# 修改镜像名,修改之后默认标签为latest
>>>docker tag IMAGE ID NEW-REPOSITORY
# 修改镜像标签
>>>docker tag IMAGE ID NEW-REPOSITORY:TAG
推送镜像到DockerHub(docker push)
前提:用dockerhub账号
DockerHub地址
以用户名为xxx栗子
# 登陆Dockerhub,输入账号密码
>>>docker login
# 确保要上传的镜像名称形如xxx/IMAGE NAME
# 可使用docker tag命令进行更改
>>>docker push xxx/IMAGE NAME
# 稍作等待,之后便可以到DockerHub上查看是否推送成功
网络配置问题
在安装完docker并启动之后,主机上会创建一个虚拟的网桥服务,形如172.17.x.x
在运行docker的时候,与主机或者容器间的网络配置,可利用–net参数进行更改
有以下几种模式,默认为bridge模式
–net=bridge|none|container:NAME_or_ID|host
举个栗子:
>>>docker run -it --net=host IMAGE NAME:TAG /bin/bash
# --net=host表示启动host模式,与主机共享ip
端口映射问题。使用-p或者-P解决,格式如下:
# 指定ip:主机端口:容器端口
- ip:hostport:containerport
# 指定ip::容器端口
- ip::containerport
# 主机端口:容器端口
- hostport:containerport
# 映射所有端口
- -P
这个命令具体用途体现在,当容器端口只开放如8080端口时,但是宿主机8080端口又被占用,此时可使用此方式改变映射端口。
举个栗子:
# command表示需要执行的命令
>>>docker run -p 5000:8080 -d IMAGE NAME:TAG command
# 此命令就可以成功的将容器8080端口映射到宿主机的5000端口之上,访问宿主机的5000端口即可