这篇文章主要是记录我个人在学习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 ./
解释:
“./”宿主机当前路径