Docker容器技术的特点
-
文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
-
资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。
-
网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。
-
写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
-
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
-
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
-
交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
Docker使用
Docker & Docker-compose安装教程
Docker Compose下载慢解决:(get.daocloud.io/#install-co…):
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
Docker常用命令行(run/start/stop/restart/logs等):
docker --version
docker ps #列出运行的容器
docker ps -a #列出容器,包括未运行的
docker start names/id #启动容器中的镜像,docker run 将镜像放入容器
docker stop names/id
docker rm names/id #删除容器,运行中的容器要先stop
docker logs -f names/id #持续查看imysql打印日志
docker run --name imysql -e MYSQL_ROOT_PASSWORD=123456 -p 28001:3306 -d mysql #运行容器
-d #表示在后台运行
28001:3306 #外部端口:容器内部端口( 整两个端口都需要放行,电信用户80、443、8080在家中为封禁状态,需要去电信备案方可放行 )
-p #跳过pull下载环节
Docker Compose
Docker Compose 常用命令(start/stop/rm等)
作用:运行、管理多个镜像
cd /home/
vi docker-compose.yml
# 编辑如下
version: ‘3’
services:
mysql1:
image: mysql #镜像名称
environment: #环境变量,传给容器内部使用
- MYSQL_ROOT_PASSWORD=123456 #root用户密码
ports:
- 28002:3306 # 映射到数组机28002: 容器内部服务端口3306
mysql2:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- 28003:3306
docker-compose up -d #拉取镜像,创建docker,运行多个服务
docker ps
Docker仓库 - Docker Hub
docker login #登录仓库
docker commit <CONTAINER ID> <Docker Hub前缀>/<远程仓库镜像名>:<name> #例:docker commit 3bfd22b13992 pingguosky/mysql:1.0
docker images 查看镜像
docker push <Docker Hub前缀>/<远程仓库镜像名>:<name> #把镜像推送到远程Docker Hub
docker pull <镜像名称> #镜像下载。例docker pull pingguosky/mysql:1.0
Docker私有仓库Harbor
...