Docker核心笔记

一、概述

1、架构

Docker容器基于镜像运行,容器共享宿主机的内核,不会加载额外内核,通过Namespaces(环境隔离)和Cgroups(资源控制)实现隔离,Cgroups会限容器使用资源并控制优先级和统计数据。隔离后的容器仅包含应用所需的用户态依赖

2、安装

安装先卸载再安装,使用的yum remove ...yum install ...。可以去阿里云的容器镜像服务配置docker的加速器,修改/etc/docker/daemon.json文件

二、命令

1、系统命令

  • systemctl start docker:启动docker
  • systemctl stop docker:停止docker
  • systemctl restart docker:重启docker
  • systemctl enable docker:设置开机自启
  • systemctl status docker:查看docker状态

2、docker常用命令

  • docker pull 镜像名:标签:拉取指定版本的镜像,不指定标签的话,一般为默认拉取的是latest标签即最新或被维护的镜像
  • docker images:查看所有镜像
  • docker rmi [-f] 镜像名:删除指定镜像。-f表示强制删除,有运行中的容器也可以删除
  • docker run ……:创建并启动一个容器
  • docker rm [-f] [-v] 容器名:删除掉一个容器,-v同时强制删除关联匿名卷
  • docker start 容器名:启动一个指定的容器
  • docker restart 容器名:重启一个指定的容器
  • docker stop 容器名:停止一个指定的容器
  • docker ps [-a] [--filter "status=exited"]:查看所有运行的容器,-a参数表示查看所有容器。–format可以指定输出的格式,–filter可以进行过滤
  • docker logs [-f] 容器名:查看容器的日志。-f表示动态的查看
  • docker exec -it 容器名 bash:进入到容器的内部。-it表示可交互的终端。bash表示命令行的模式。容器内exit命令退出。某些精简镜像可能只有sh。bash是sh的增强版,支持更多功能
  • docker save -o 保存后的名字.tar 镜像名:标签:将镜像保存下来,可以实现镜像的传递
  • docker load -i 保存后的名字:将docker save的镜像加载到本机的docker images
  • docker -v:查看版本
  • docker inspect 容器名:查看容器的详细信息

3、创建并运行容器案例

Mysql

docker run -d \
    --name mysql \
    -p 3306:3306 \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123 \
    --network mynet
    mysql
  • docker run -d:创建并运行一个容器,-d让容器在后台运行
  • --name mysql:给容器起一个名字,必须唯一
  • -p 3306:3306:端口映射,宿主机端口映射容器内的端口
  • -e TZ=Asia/Shanghai:环境变量,key=value,每个容器预设的键值对
  • --network mynet:使容器加入名字为mynet的这个网络中,指定后就不会加入默认的网络中
  • mysql:运行的镜像名字。完整写法:[repository]:[tag],如mysql:5.7。没写的话,默认latest,最新版本

Jenkins

docker run --name jenkins -u root -d \
  -p 8080:8080 -p 50000:50000 \
  -v /var/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/

你可能感兴趣的:(NO.1,docker,笔记,eureka)