记一次之Docker常用命令

406 阅读2分钟

这篇文章主要是记录我个人在学习Docker的时候用到的常用命令以及踩过的坑。我想接触过微服务的小伙伴大概也多多少少了解过Docker,Docker作为微服务中必不可少的伙伴随着微服务的兴起这两年也是大火。Docker被称为容器技术,什么是容器技术呢?打个比方:在我们实际开发中经常会遇到本地开发的时候好好的,一部署到生产环境就嗝屁的情况。这个时候多半是想砸电脑的!那是因为我们机器的环境和生产环境存在着微妙的差异所导致的,比如jdk版本不一致啊,redis配置不一样啊等等。因此有了Docker之后,它会将我们开发好的环境打包成一个个"存储库",只要是本地环境能运行,放到哪台服务器只要执行打包好的image就一样能运行。妈妈就再也不用担心我们项目部署的问题啦! 附上官方镜像仓库

以  gp3/hello-nginx:latest 存储库(镜像)为例
  • 1.查看本地镜像:docker images
  • 2.查看所有容器:docker ps -a
  • 3.拉取镜像:docker pull gp3/hello-nginx:版本号
  • 4.运行镜像:docker run -d -p 8088:80 gp3/hello-nginx:版本号

解释:

  • -d 设置后台启动并且打印出container ID
  • -p 设置端口映射(访问端口:nginx端口)
  • :版本号”可不写,不写就是latest,默认最新版
  • 5.查看正在运行的镜像:docker ps
  • 6.停止:docker stop [CONTAINER ID]
  • 7.启动:docker start [CONTAINER ID]
  • 8.重启:docker restart [CONTAINER ID]
  • 9.删除容器:docker rm [CONTAINER ID]
    • 强制删除:docker rm -f [CONTAINER ID]
  • 10.删除镜像:docker rmi gp3/hello-nginx:版本号
  • 11.删除none镜像(windows下):docker rmi $(docker images --filter dangling=true -q --no-trunc)
  • 12.创建DockerFile:
    用一个javaweb项目为例,需要tomcat服务器运行,所以基础镜像为tomcat。文件内容:
    FROM hub.c.163.com/library/tomcat
    MAINTAINER gaopeng gpsinger@163.com
    COPY yn-jygl.war /usr/local/tomcat/webapps
    

解释: FROM 基础镜像</br> MAINTAINER 维护者姓名 维护者联系方式</br> COPY 要拷贝的本地文件 拷贝到tomcat镜像的webapps文件夹内</br>

  • 13.构建镜像:docker build -t ynpm:版本号 .

解释:
-t 设置镜像的名字和版本号(NAME:TAG)
. 代表当前目录

  • 14.查看docker日志:docker logs -f [CONTAINER ID]
  • 15.进入容器内指定目录webapps下的ynpm文件夹:docker exec [CONTAINER ID] ls webapps/ynpm
  • 16.从宿主机拷文件到容器里面:docker cp j2cache.properties [CONTAINER ID]:/usr/local/tomcat/webapps/ynpm/WEB-INF/classes/j2cache

解释:
宿主机上当前目录的j2cache.properties拷贝到容器[CONTAINER ID]的/usr/local/tomcat/webapps/ynpm/WEB-INF/classes/j2cache目录下

  • 17.从容器拷文件到宿主机里面:docker cp [CONTAINER ID]:/usr/local/tomcat/webapps/ynpm/WEB-INF/classes/j2cache/a.jpg ./

解释:
“./”宿主机当前路径