Docker基础使用(Docker&Docker Compose&Docker hub)

409 阅读2分钟

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 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

...