删除所有docker容器:docker rm -f $(docker ps -q -a)
Namespace 对进程、网络、用户等资源隔离,在容器里看不到宿主机的进程
进入docker:docker exec -it ID sh
docker的应用场景
场景一:
1:单项目部署,可以把环境pull到容器中,一次构建,多次部署
2:整套项目部署,如果公司有一个项目要卖给多个客户,可以把项目打包起来,实现一键部署
3:开源技术调研,docker可快速下载镜像,快速运行。
场景二:
在windows的环境部署下,经常在本地没问题,但是部署到服务器就出问题了,这个问题非常常见。用docker可以避免这个问题。
场景三:
微服务,一个容器一个服务
场景四:
持续集成,可以快速的测试,上线。
docker pull nginx 下载镜像
docker image rm nginx 删除nginx镜像
docker tag nginx nginx:v1 给nginx镜像做标记,引用原Nginx镜像的ID
docker container run -itd --name nx nginx 运行一个容器,命名为nx
docker export 309be2be05e4 > nginx.tar 导出一个正在运行的容器
docker import nginx.tar nginxs:self 导入镜像并加tag为self
docker save nginx> nginx.tar 导出一个容器
docker container attach nx 进入nx容器中 不常用,退出会关闭容器
docker exec -it nx /bin/bash 进入nx容器中,退出容器不关闭容器
docker container run -itd -p 8080:80 --name nginx01 nginx 创建一个容器nginx01,-p把宿主机的8080映射到容器的80端口
docker container run -itd -p 8081:80 --name nginx02 --restart=always nginx 创建一个容器nginx02,--restart=always服务器挂了会重启容器
docker container run -itd -p 8082:80 --name nginx03 --cpus 1 nginx 创建一个容器nginx03,--cpus 1 如果宿主机有双核,只能使用单核CPU资源
docker container run -itd -p 8083:80 --name nginx04 --memory 512m nginx 创建一个容器nginx04,--memory 512m 使用宿主机的512m内存,虚拟内存默认为512的两倍
docker container stats nginx04 可以查看容器的资源使用率
/usr/local/tomcat/webapps/
启动docker
systemctl start docker
卸载docker
yum remove docker-ce
rm -rf /var/lib/docker
镜像库地址;
https://hub.docker.com/explore
默认是国外的源,下载会慢,建议配置国内镜像仓库:
# vi /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"]
}
之后 重启docket systemctl restart docker
再使用命令ps -ef |grep docker看下是否有docker进程,有的话说明启动成功
docket的存储驱动路径
/var/lib/docker
存储驱动的作用就是容器层和镜像层的逻辑运行速度,所以存储驱动好的话效率很重要。
容器管理
docker container inspect ID 查看容器详细信息
Volume
管理卷:
# docker volume create nginx-vol 创建一个数据卷
# docker volume ls 数据卷列表
# docker volume inspect nginx-vol 查看数据库详细信息
用 卷 创建一个容器:
# docker run -d -it --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx 创建nginx-test容器,挂载到容器目录dst
# docker run -d -it --name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx
清理:
# docker container stop nginx-test 停止容器
# docker container rm nginx-test 删除容器
# docker volume rm nginx-vol 删除数据卷
注意:
1. 如果没有指定卷,自动创建。
2. 建议使用—mount,更通用。
Bind Mounts
用卷创建 一个容器:
# docker run -d -it --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx 创建nginx-test容器,type:bind的src可以是宿主机是任意目录,挂载到容器目录dst
# docker run -d -it --name=nginx-test -v /app/wwwroot:/usr/share/nginx/html nginx
验证绑定:
# docker inspect nginx-test
清理:
# docker container stop nginx-test
# docker container rm nginx-test
docker build -t tomcat:server -f DockerfileEurekaServer . 构建镜像
docker run -d -it --name=eureka-server -p 8080:8080 tomcat:server 启动服务容器
docker run -d -it --name=eureka-client1 -p 8888:8888 tomcat:client1 启动逻辑服1容器
docker run -d -it --name=eureka-client2 -p 8989:8989 tomcat:client2 启动逻辑服2容器
docker run -d -it --name=eureka-zuul -p 5000:5000 tomcat:zuul 启动网关容器