文章目录
- 1. 什么是容器
- 2. 容器和虚拟机的区别
- 3. docker-ce的安装
- 4. docker主要内容
- 5. docker镜像常用命令
- 6. docker容器常用命令
- 7. docker端口映射
- 8. docker数据卷
1. 什么是容器
容器是隔离的环境中运行的一个进程,如果进程结束,容器就会停止,容器的隔离环境,拥有自己的ip地址,系统文件,主机名,进程管理。
程序:代码,软件,命令
进程:正在运行的程序
2. 容器和虚拟机的区别
虚拟机: 硬件cpu支持(vt虚拟化),模拟计算硬件,走正常的开机启动
bios开机自检–根据bios启动项–读取硬盘第一个扇区grub,uefi,centos7,加载内核,启动系统第一个进程/sbin/init systemd
容器:不需要硬件cpu的支持,共用宿主机内核,启动容器的第一个进程
容器优势:启动快,性能高,损耗少,轻量级
100虚拟机 100个服务 10宿主机
100容器 100个服务 6宿主机
3. docker-ce的安装
#安装docker-ce
wget -O /etc/yum.repos.d/docker-ce.repo
https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce -ysystemctl enable docker
systemctl start docker#验证
[root@docker01 yum.repos.d]# docker version
Client: Docker Engine - Community
Version: 19 .03.05
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07 :25:41 2019
OS/Arch: linux/amd
Experimental: false
4. docker主要内容
docker是一个cs架构, docker主要:镜像 容器 仓库 网络 存储 监控
docker是一个软件的打包技术.
docker run -d -p 80 :80 nginx:latest
run 创建并启动一个容器
-d 放后台启动
-p 端口映射
nginx:latest docker镜像名称
5. docker镜像常用命令
docker search 搜索镜像, 优先选官方,stars数量多
docker pull 拉取镜像(下载镜像)
docker push 推送镜像(上传镜像)
docker load 导入镜像
例子: docker load -i docker_nginx.tar.gz
docker save 导出镜像
例子:docker save centos:7 -o
docker_centos7.tar.gz
docker images 查看镜像列表
docker rmi 删除镜像
docker tag 给镜像打标签
6. docker容器常用命令
docker run 创建并启动容器
例子:docker run -d -it -p 80:80 nginx:latest
docker create 创建容器 --name
docker start 启动容器
docker stop 停止容器
docker restart 重启容器
docker kill 强制停止容器
docker ps 查看容器列表 -a 查看所有容器
docker rm 删除容器
批量删除所有容器 docker rm -f `docker ps -
a -q`
docker exec 进入正在运行的容器(分配一个新终
端)
例子: docker exec -it 容器id/容器名字
/bin/bash(/bin/sh)
docker attach 进入正在运行的容器(使用相同的终
端),偷偷离开的快捷键ctrl +p,ctrl +q
容器想要放在后台一直运行的话,那么容器的初始命令,必须夯住(前台运行),否则容器就会退出。
前台运行
nginx -g 'daemon off;'
/usr/sbin/php-fpm --nodaemonize
7. docker端口映射
docker run
-p 宿主机端口:容器端口
-p 宿主机ip1:宿主机端口:容器端口 (多个容器同时
使用 80 端口)
-p 宿主机ip1::容器端口 随机端口映射
-p 宿主机ip1::容器端口/udp 使用udp协议做随机
端口映射
-p 80 :80 -p 3306 :
-p 1111 -1119:1111-1119 端口范围映射-P 自动随机端口映射
8. docker数据卷
docker run
-v 宿主机绝对目录:容器目录
-v 容器目录 #创建一个随机卷,来持久化容器
的目录下的数据
-v 卷名:容器目录 #创建一个固定名字的卷,来持
久化容器的目录下的数据
--volumes-from 跟某一个容器挂载所有相同的卷
小练习: 只启动一个nginx容器,要求访问 80 端口,出现nginx默认欢迎首页,访问 81 端口,出现小鸟飞飞。