docker
docker 是什么?
docker 是使用go语言开发的,开源应用容器引擎!他的主要作用就是来运行容器的!
盒子!!
我们可以把一些应用或者环境打包在一个容器中,然后在安装了docker的服务器上都可以直接运行这个容器!然后直接访问!
例如
我们把wordpress这个php应用直接打包在一个容器中!
只要我们的服务器上安装了docker就可以直接运行这个容器,
然后就可以直接访问到这个容器里面的wordpress! 而我们运行容器我们只需要一个命令!这让我们可以快速的部署一些
复杂的应用或者环境!
三个基本概念
镜像:
作用是用来创建容器的!
容器:
可以迁移、轻量级
以镜像的形式迁移的!
仓库:
存放镜像的!
私有仓库!
harbor 私有镜像,定制的镜像!
与虚拟机的对比
启动速度:
虚拟机开机时间: 2分钟
容器开启时间: 秒级别!
磁盘的占用:
虚拟机: 3-4G
容器: 兆级别
性能:
虚拟机: 弱于原生
容器: 几乎接近于原生的性能
迁移:
虚拟机: 笨重
容器: 快
在线安装docker
1.首先做一个docker源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
或者
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
//检查源文件是否创建成功
ls /etc/yum.repos.d/docker-ce.repo #文件存在则成功!
2.安装docker并启动
yum -y install docker-ce
systemctl start docker
systemctl enable docker
3.配置镜像加速
//编写daemon.json配置文件到/etc/docker/下,然后重启docker就完成加速
vim daemon.json
{
"registry-mirrors": ["https://q3u0qv3z.mirror.aliyuncs.com"],
"insecure-registries":["192.168.189.171"] #本机ip
}
4.测试
docker run hello-world
docker离线安装
//上传docker的离线安装包和docker的启动命令到虚拟机
docker-19.03.9.tgz docker.service
1.解压docker
tar zxf docker-19.03.9.tgz
cp docker/* /usr/bin
2.配置docker启动命令
cp docker.service /etc/systemd/system
chmod 755 /etc/systemd/system/docker.service
3.启动docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
常用的命令
镜像:
1.下载镜像:
docker pull nginx
docker search 关键词
常用的镜像:
nginx
httpd
tomcat
mysql:5.7
wordpress
centos
2.上传镜像到仓库
docker push 服务器地址/镜像名:tag
3.查看本地下载了哪些镜像:
docker images
4.删除一个或者多个镜像:
docker rmi [-f] 镜像名字/镜像ID
5.给镜像添加一个新的tag
docker tag 旧镜像名:tag 新景
容器:
容器的运行方式有两种!
前台运行容器(centos)
后台运行容器(主要的运行方式)
1.创建容器,用的比较少
docker create
2.启动一个或多个容器
docker start 容器名/容器的ID
3.停止或者重启一个或多个容器
docker stop 容器名/容器的ID
docker restart 容器名/容器的ID
4.创建并运行一个容器,主要的创建容器的方式
docker run --name 容器名 -d -p nginx
--name 新容器的名字(必须是唯一的)
-d 后台运行容器
-p 端口映射
docker run --name nginx1 -d -p 81:80 nginx
docker run --name httpd1 -d -p 82:80 httpd
docker run --name tomcat1 -d -p 8080:8080 tomcat
5.查看正在运行的容器
docker ps
6.查看所有的容器(运行和停止)
docker ps -a
docker ps -qa 只显示所有容器的ID
7.查看容器或者镜像的元数据
docker inpsect 容器名
这里可以看到容器的IP地址、网关、挂载的数据卷、执行的命令等等信息!
8.删除一个或多个容器
docker rm 容器名/容器ID
docker rm -f 容器名/容器ID
删除所有已经停止的容器:
docker rm $(docker ps -qa)
删除所有的容器
docker rm -f $(docker ps -qa)
9.容器和宿主机之前复制文件
docker cp
复制测试页面到nginx容器的网站根目录下
docker cp index.html nginx1:/usr/share/nginx/html/index.html
10.进入容器内部
docker exec -it 容器名 bash