ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## Docker简介   Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。   它是一项虚拟化技术,应用场景广泛如web部署 可以快速部署我们的应用。cgroup 技术帮我们实现资源的限制 namespace 来完成对资源的隔离。 ## docker的安装   参考文档:[https://blog.csdn.net/nimoyaoww/article/details/79155489](https://blog.csdn.net/nimoyaoww/article/details/79155489) ## docker的基本操作 ~~~ docker images          查看本地的镜像 docker search 镜像名      搜索网上的相关镜像 docker pull 镜像名       拉取你要的镜像 docker rmi 镜像名        删除镜像 docker save 镜像名|gzip>>保存的文件名.tar.gz 将拉取下来的镜像保存在本地 docker load < 保存的文件名.tar.gz 将保存的镜像文件重新加载 docker inspect 容器名或id             能查看到此容器的信息 docker logs 容器名或id               查看日志 如果加了-f 参数就可以动态查看日志 docker run -it 镜像名 (bash/sh)进入时使用的shell方式 ~~~         -t 分配一个伪终端         -i 让容器的标准输入保持一个打开的状态 ~~~       --name 名字 可以给我们的容器起一个名字       --rm 退出容器的时候 自动删除容器 docker ps 查看正在运行的容器 -a 能显示那些已经关掉的容器 docker rm 容器id或者容器名字                删除容器(加-f表示强制删除) docker attach 容器名字或id       进入到一个启动中的容器(退出容器自动停止) docker exec -it 容器名字 bash/sh    进入到一个启动中的容器(退出容器不停止) exit                             可以退出当前的容器 docker commit -m "注释" 容器名字或id 生成的镜像的名字 将现有的容器生成新的镜像保存在本地仓库 ~~~ docker网络映射 端口映射 \-P 随机映射 \-p 主机端口:容器端口 ~~~ docker run -it -d --name 名字 -p 主机端口:容器端口 容器名 ~~~ 数据卷 ~~~ docker run -it -d --name 名字 -v 宿主机目录:容器目录 容器名 ~~~ 数据卷容器 ~~~ docker run -it -d --name 名字 --volumes-from 容器名 ~~~ 容器互联 ~~~ 先启动一个容器 docker run -d --name web1 -p 80:80 ningx 在启动一个容器: docker run -d --name web2 --link web1 -p 8080:80 ningx ~~~ 基础的Dockerfile的编写(文件名必须叫Dockerfile) ~~~ FROM ubuntu MAINTAINER liuda liuda@1000phone.com RUN apt-get update RUN apt-get install nginx -y RUN echo "daemon off;">>/etc/nginx/nginx.conf #设置开放端口 EXPOSE 80 # 默认在容器启动的时候执行的命令 CMD ["nginx"] ~~~ 构建命令 ~~~ sudo docker build -t 标签名字 ./ ~~~ 上传自己的镜像到仓库 * 1 docker login 可以加你的docker网址 默认是[https://hub.docker.com](https://hub.docker.com/) * 2 给你的镜像打标签 docker tag 镜像名/id 用户名/存到远端叫什么:tag标签 * 3 docker push 第2步 镜像名/id后边跟的 名字 ~~~ sudo docker login sudo docker images sudo docker tag 77b3321ee9b8 whoareyou0401/1805ubuntu sudo docker push whoareyou0401/1805ubuntu ~~~  补充 ~~~ sudo docker start 0b4bb44bfa81 运行一个停止的容器 sudo docker inspect --format "{{.State.Pid}}" 0b4bb44bfa81 获取指定id的容器的进程PID sudo nsenter -t 2916 -u -i -n -p 进入到一个运行中的容器(推荐方式,2916是容器进程PID) sudo docker ps -a -q 获取容器id sudo docker kill $(sudo docker ps -a -q) 杀死一个运行的容器进程 sudo docker logs 容器id 查看容器的访问日志 ~~~