docker学习
什么是docker?
docker是一款给予go语言开发的一种容器化技术, 使用docker我们可以解决传统的部署项目所带来的环境影响的问题,给予docker我们可以将我们开发的项目代码连同环境打包成一个镜像,这样就完美的解决了本地环境与线上环境存在差异性的问题。 docker的两大核心概念是容器和镜像。
docker之所以很火是因为他有一个特性,很快,打包的镜像也比较小。快的原因是因为是他是给予系统的内核并且他有一个文件分层抽取的概念。
什么是镜像?
所谓镜像就是一个包含我们项目代码以及环境的一个"压缩包",就类似于java中的jar包,我们只需要将我们的代码以及环境做成一个镜像发布到docker的仓库即可在服务器中拉取使用。这里的仓库实际上和git或者maven的仓库类似,都有私服和公服的概念。公服地址:https://registry.hub.docker.com/,几乎大部分我们需要用到的环境例如nginx、mysql等我们都能在中央仓库中找到。
docker version #显示docker的版本信息。
docker info #显示docker的系统信息,包括镜像和容器的数量 docker 命令
--help #帮助命令 #帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/
常用的镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search 搜索镜像
docker pull 下载镜像 docker pull 镜像名[:tag]
docker image pull docker
rmi 删除镜像 docker image rm
删除镜像
? ~ docker rmi -f 镜像id #删除指定的镜像
? ~ docker rmi -f 镜像id 镜像id 镜像id 镜像id#删除指定的镜像
? ~ docker rmi -f $(docker images -aq) #删除全部的镜像
容器命令
docker run 镜像id 新建容器并启动
docker ps 列出所有运行的容器
docker container list
docker rm 容器id 删除指定容器
docker start 容器id #启动容器
docker restart容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
新建容器并启动
docker run [可选参数] image | docker container run [可选参数] image
#参书说明
--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080(宿主机):8080(容器) -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 容器端口 -P(大写) 随机指定端口
# 测试、启动并进入容器 ? ~ docker run -it centos /bin/bash
列出所有运行的容器
#docker ps命令 #列出当前正在运行的容器
-a, --all Show all containers (default shows just running)
-n, --last int Show n last created containers (includes all states) (default -1)
-q, --quiet Only display numeric IDs
退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出
删除容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
docker rm -f $(docker ps -aq) #删除指定的容器
docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
后台启动命令
# 命令 docker run -d 镜像名
? ~ docker run -d centos
查看容器中进程信息 ps
docker top 容器id
查看镜像的元数据
# 命令 docker inspect 容器id
#测试
? ~ docker inspect 55321bcae33d
进入当前正在运行的容器
方式一:
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 命令 docker exec -it 容器id /bin/bash
方式二:
# 方式二 docker attach 容器id
#测试 docker attach 55321bcae33d
从容器内拷贝到主机上
docker cp 容器id:容器内路径 主机目的路径
#进入docker容器内部
? ~ docker exec -it 55321bcae33d /bin/bash
|