一、容器、服务器介绍
Docker就是一中快速解决生产问题的一种技术手段,可以使用Docker构建项目运行所依赖的环境。
镜像:
构建容器所需要的环境 ,一个镜像可以创建无数个容器
容器:
即通过镜像创建出来的容器,它的运行需要依赖于操作系统
仓库:
既存放镜像的地方
服务器:
服务器就是一台电脑,里面装的是对应的软件
二、Docker基础命令
1.查看docker服务状态
systemctl status docker //查看状态
systemctl start docker //开启
systemctl stop docker //关闭
systemctl restart docker //重启
2.查看docker版本
docker version
3.删除docker命令
yum remove docker-ce
rm -rf /var/lib/docker/ //docker的认证目录
rm -rf /etc/docker //docker的应用目录
4.搜索某个镜像
docker search xxx
5.下载镜像
docker pull xxx
6.查看所有镜像
docker images
docker image ls
7.查看镜像历史
docker history xxx
8.镜像的备份
docker tag xxx:latest xxx:1.0
9.删除未被使用的镜像
docker image prune
10.导出镜像到宿主机
docker save -o xxx:latest.tar xxx:latest
11.导入镜像
docker load -i xxx:latest.tar
12.查看所有容器
docker ps //查看正在运行的容器
docker ps -a //查看所有容器
13.查看容器的编号
docker ps -q //查看正在运行容器编号
docker ps -aq //查看所有容器编号
14.守护进程启动nginx容器
docker run -itd --name byf nginx:latest
-i 标识持续和容器交互,防止断开
-t 分配一个伪TTY,以便和容器进行命令的交互
-d不显示创建内容
-it合起来用就是信号连接
--name 创建的容器名字
nginx:latest 镜像名字加tag
15.停止容器
docker stop xxx //停止容器
docker rm xxx //删除容器
docker start xxx //启动容器
16.批量删除正在运行的容器
docker rm $(docker ps -q) -f
-f 强制删除正在运行的容器
17.删除未运行的容器
docker rm $(docker ps -qa) -f
18.创建nginx容器并进入
docker run -it --name mynginx nginx:latest /bin/bash
19.重新进入nginx容器
docker exec -it nginx /bin/bash
20.通过nginx容器创建nginx:v1.0 镜像
docker commit -m 'haha' -a 'laowang' nginx nginx:v1.0
-m 改变了什么
-a 作者是谁
21.查看nginx镜像、容器全部信息
docker image inspect nginx:v1.0
docker container inspect nginx
三、私有仓库的搭建
镜像就是来自于仓库
公有仓库是从docker Hub来拉去镜像
私有仓库备份镜像 需要自己配置 速度非常快
1.下载镜像registry
docker search registry
docker pull registry
2.配置私有仓库(/etc/docker/daemon.json)
前面是共有仓库 , 后面是私有仓库自己宿主机的IP 端口可以任意写我这里用的是5000
3.重启docker
systemctl restart docker
4.创建registry容器(关联私有仓库配置)
-p 端口映射
-d 后台运行不显示
5.镜像备份到私有仓库
docker tag nginx:latest 192.168.145.165:5000/my_nginx
6.推送镜像到私有仓库
docker push 192.168.145.165:5000/my_nginx
7.删除原有的镜像
docker rmi 192.168.145.165:5000/nginx:latest
8.下载镜像会自动从私有仓库拉取
docker pull 192.168.145.165:5000/my_nginx
四、数据卷
1、数据卷的作用:
可以将宿主机中的数据喝容器中的数据进行共享
2、创建过程:
在宿主机中创建目录test
将宿主机的目录下的test绑定到容器中
-v 数据卷
docker run -it --name my_nginx -v /root/test:/test nginx:latest /bin/bash
执行这条命令就可以实现宿主机和容易test目录共享
数据卷volumes
1.创建数据卷
docker volume create xxx
2.查看数据卷
docker voleme ls
3.删除数据卷
docker volume rm xxx
数据共享操作
创建数据卷meiduo
docker volume create meiduo
创建容器my_nginx和/home进行数据共享
docker run -it --name my_nginx -v meiduo:/home nginx:latest /bin/bash
数据卷容器的使用
作用:
可以通过数据卷容器,创建新的容器,并将多个容器绑定在一起
操作流程:
基于my_nginx数据卷容器创建多个容器
docker run -itd --name my_nginx --volumes-from my_nginx1 nginx:latest
五、端口映射的使用
创建nginx容器的时候,分配ip和端口
1.创建ndinx1容器,指定随机端口,默认ip是0.0.0.0
docker -itd --name nginx1 -P nginx:latest
2.创建nginx2容器,指定端口6001,默认ip地址是0.0.0.0
docker run -itd --name nginx2 -p 6001:80 ngnix:latest
3.创建nginx3容器,指定ip 172.16.12.134 指定端口6002
docker run -itd --name nginx3 -p 172.16.12.134:6002:80 nginx:latest