1.什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
image.png

2.docker的作用

解决项目部署依赖冲突问题。docker将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包,放到隔离的容器中单独运行,方便项目的部署上线。
image.png

3.docker与虚拟机的区别

虚拟机是模拟完整的计算机,具有操作系统;而docker是轻量级的,是将应用与依赖一起封装,占用资源较少,启动快。

4.docker架构

镜像:将应用程序及其依赖、环境、配置打包在一起。
容器:镜像运行起来就是容器,一个镜像可以运行多个容器。
结构:- 服务端:接收命令或远程请求,操作镜像或容器;
- 客户端:发送命令或者请求到Docker服务端。
dockerhub:远程的镜像仓库,一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry。

5.安装docker

sed -i ‘s/download.docker.com/mirrors.aliyun.com\/docker-ce/g’ /etc/yum.repos.d/docker-ce.repo

yum makecache fast

  1. - 安装docker

yum install -y docker-ce

  1. <a name="KtEX6"></a>
  2. # 6.镜像操作
  3. 镜像结构:<br />repository : tag 例 mysql : 5.7.12<br />拉取镜像:<br />docker pull 镜像名:版本号
  4. 查看所有镜像:<br />docker images<br />查看所有镜像:<br />docker images<br />查看命令使用方法:<br />docker 命令 --help<br />导出镜像:<br />docker save -o [保存的目标文件名称] [镜像名称]<br />例:docker save -o nginx.tar nginx:latest<br />加载镜像:<br />docker load -i nginx.tar<br />删除镜像:<br />docker rmi nginx : laste
  5. <a name="eypPv"></a>
  6. # 7.容器操作
  7. 创建并运行一个容器:<br /> docker run --name containerName -p 80:80 -d nginx<br />--name 容器名 (不能重复)<br />-p 容器端口 :镜像端口 (容器端口不能重复)<br />-d 后台运行<br />暂停运行的容器:<br />docker pause 容器名<br />暂停容器重新运行:<br />docker unpause 容器名<br />停止运行的容器:<br />docker stop 容器名<br />停止的容器重新运行:<br />docker start 容器名<br />删除容器:<br />docker rm 容器名<br />进入容器内部:<br />docker exec it 容器名 bash<br />查看容器日志:<br />docker logs (查看所有) -f(持续查看)<br />docker logs 容器名<br />查看容器状态:<br />docker ps (查看运行中的) <br />docker logs (查看所有)<br />查看端口号是否被占用:<br />netstat -anp |grep 端口号<br />设置容器自启动:<br />docker update --restart always 容器名
  8. <a name="zg2hb"></a>
  9. # 8.数据卷操作
  10. 数据卷基本操作:<br />docker volume create 文件名 <br />docker volume inspect 文件名 显示信息 <br />docker volume ls 查看所有 <br />docker volume prnue 删除未使用<br />docker volume rm 文件名 删除指定<br />挂载数据卷:<br />docker run --name 容器名 -v html:/usr/share/nginx/html -p 80:80 -d nginx<br />挂载数据卷的用途:<br />在容器外建立容器内程序文件的映射,在容器外就可以修改配置以及保存数据
  11. <a name="pA9ke"></a>
  12. # 9.自定义镜像
  13. 使用dockerfile文件,文件里包含基本指令;<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/23074835/1635685810675-d7a90a36-9be0-420b-9be3-ac8657e1d869.png#clientId=u17c3168e-6c0b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=219&id=uc3c2b0c2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=438&originWidth=1165&originalType=binary&ratio=1&rotation=0&showTitle=false&size=103124&status=done&style=none&taskId=u0fe227ff-8b71-4d0e-9121-61a5782a7e3&title=&width=582.5)
  14. <a name="RSZEJ"></a>
  15. # 10.DockerCompose
  16. 于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。<br />安装:

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s-uname -m` > /usr/local/bin/docker-compose ``` docker-compose up -d 部署所有容器

11.私有镜像仓库

重命名镜像:
docker tag nginx:latest 192.168.150.101:8080/nginx:1.0
推送镜像:
docker push 192.168.150.101:8080/nginx:1.0
拉取镜像:
docker pull 192.168.150.101:8080/nginx:1.0