目录
who Is Docker
概念
centos7 安装docker
kali安装docker
docker安装nginx
Docker常用命令
容器得常用命令
Docker-Compose install
常用docker-compose命令
who Is Docker
-
软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前。
-
容器技术就诞生了,容器技术中的佼佼者,就是docker,它的底层实现原理我们现在不用纠结。用它来打包出来的软件,体积会非常小。
-
比如如果在一个虚拟机上安装了nginx,那么这个虚拟机怎么也要1G以上,但是用docker打包的已经安装好的nginx,可能也就100M左右,体积小很多。
-
概念
-
镜像:
-
images
-
是个压缩包文件,里面存放着安装好的程序
-
-
容器:
-
Container,Docker利用容器来运行应用。
-
容器是从镜像创建的运行实例
-
它可以被启动、开始、停止、删除。
-
每个容器都是相互隔离的、保证安全的平台
-
-
centos7 安装docker
# centos7上面用yum安装
yum install docker -y
#启动docker
systemctl start docker
#设置开机自启
systemctl enable docker
#体验docker版nginx最新版
docker run -d -p 80:80 nginx
#体验docker版nginx 1.16
docker run -d -p 81:80 nginx:1.16
#体验wordpress
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -d --link mysql:mysql -p 86:80 wordpress:5.6
kali安装docker
#添加docker的gpg密钥,签名用的
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg |
sudo apt-key add -
#添加docker的apt源
echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster
stable' | sudo tee /etc/apt/sources.list.d/docker.list
#更新apt缓存
apt update
#安装docker
sudo apt-get install docker docker-compose -y
或
sudo apt-get install docker.io
#安装完成之后,docker就自动启动了
systemctl status docker
#查看docker版本
docker -v
docker安装nginx
#体验docker版nginx最新版,本地没有nginx镜像的话,会自动去仓库中拉去镜像并运行
docker run -d -p 80:80 nginx#体验docker版的特定版本的nginx 1.16
docker run -d -p 81:80 nginx:1.16#docker run -d -p 82:80 nginx:1.18
#直接浏览器访问:http://192.168.2.121/ 就能看到nginx首页了。在响应数据中就能看到nginx的版本
#是不是感受到了安装不同版本nginx的便利之处了,如果不是用docker,你想去安装一些特定的老版本还是比较麻烦的,好多时候只能编译安装
-------------------------------------------------------------------
# 可以更改docker镜像库的源
cd /etc/docker
vim docker.json
# 添加如下内容,并保存退出
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
*************************
# 可以重启docker服务
systemctl restart docker
systemctl start docker
systemctl enable docker
systemctl stop docker
#Docker中国区官方镜像
https://registry.docker-cn.com
#阿里云容器,不过这个好像不更新了,大家可以去阿里官方关注一下
https://cr.console.aliyun.com/
Docker常用命令
docker search
#搜索镜像(只搜索官方仓库的,官方仓库地址:hub.docker.com)
# docker search tomcat
# docker search apache
#我们拉取的镜像tomcat\apache等名字很短对吧,这都是官方仓库中的官方镜像,官方仓库中支持用
#查看本地镜像列表,image就是图像、镜像的意思
------------------------------------------------------------------
docker pull
#下载镜像,拉取镜像
# docker pull tomcat:latest
# docker images
-------------------------------------------------------------------
docker push
#上传镜像,推送镜像,推到官方仓库,推送不是那么简单的,不然早就满了,需要在本地登录一下
-------------------------------------------------------------------
docker rmi
#删除镜像,rm image的意思,直接rm不加i表示要删除容器,可以通过名称加版本来删除,或者直接通
过镜像id值来删除
-------------------------------------------------------------------
docker save
#导出镜像(压缩包) docker save 镜像名称:版本 -o docker_nginx1.20.tar.gz
-------------------------------------------------------------------
docker load
#导入镜像 docker load -i docker_nginx1.20.tar.gz,会自动解压并导入到docker服务中
容器得常用命令
#docker 常见命令
docker run 运行一个新容器docker ps === docker container ls
#参数: 默认之显示up状态的容器,-a查看所有容器,或者--alldocker stop 停止容器 #例子 docker stop 容器id或者容器名字docker kill 杀掉容器 #强制关闭容器,尽量不要用,很容易就启动不了了docker start 启动容器 #例子 docker start 容器id或者容器名字docker restart 重启重启 #例子 docker restart 容器id或者容器名字docker rm 删除容器 #例子 docker rm 容器id或者容器名字,同时删除多个,就空格隔开,处于up状态是不能直接删除的,强制删除是可以删除up状态的容器的,docker rm f 容器名称或者id
-----------------------------------------------------------------------------
docker rm -f `docker ps -a -q` #删除所有容器,-q是只显示容器id,反引号中的指令优先执行docker top 查看容器内的进程 #例子docker top 容器id或者容器名字docker stats 查看容器的资源占用情况docker exec 进入容器 #例子: docker exec -it 容器id或者容器名字
************************************
# 直接交互指令:docker exec -it 76738703b7b2 ls # 执行ls指令
# 进入终端:docker exec -it 76738703b7b2 /bin/bash或者/bin/sh #/bin/bash打开一个终端窗口,exit指令退出终端,但是docker容器内容一般不会安装额外的软件,所以导致大量的指令是用不了的,比如ifconfig、ps、ip addr等
Docker-Compose install
#centos7安装docker-compose,我们前面已经安装了,不需要再次安装了
yum install epel-release.noarch -y
yum install docker-compose -y
#kali安装docker-compose
apt install docker-compose -y
# 查看版本
docker-compose -v
常用docker-compose命令
#创建并启动
docker-compose up -d # 启动之后就可以通过浏览器访问了
#停止并删除
docker-compose down
#重启
docker-compose restart
#停止
docker-compose stop
#启动
docker-compose start