Docker
1Docker简介
Docker是基于go语言实现的开源容器项目,实现超传统虚拟机的轻量级虚拟化,是内核级的虚拟化。内嵌一个内核级系统,相当于一个虚拟机。 学习Docker主要做两件事 (1)在Docker安装软件 (2)把项目部署到Docker |
2Docker和vm的区别
结构 Docker中的容器是相互独立的,共用一个宿主系统,体积小 vm体积大,每一个vm是独立的虚拟机系统 应用 Docker面向内核,软件,Docker是秒级别的 vm面向硬件,分钟级别 |
3Docker特点
|
4Docker架构
5Docker常用命令
启动docker systemctl start docker 查看docker信息 docker info 镜像操作 (1)列出镜像: docker images (2)搜索镜像 docker search 镜像名 例如docker search mysql (3)下载镜像(需要去docker hub确认) docker pull 镜像名 例如docker pull mysql:8 (4)删除镜像 docker rmi $IMAGE_ID docker rmi $REPOSITORY:TAG |
6容器操作(容器相当于小型系统)
(1)新建容器 docker create -p 3306:3306 --name suiyi -e MYSQL_ROOT_PASSWORD=shuai mysql (2)新建并启动容器(run的时候一般会带-d后台启动) docker run -p 3306:3306 -d --name suiyi -e MYSQL_ROOT_PASSWORD=shuai mysql (3)列出启动容器 列出正在运行的容器 参数 -l:显示最近创建的容器 -n 数字:显示最近n个创建的容器 -a:列出所有的运行过的容器 -q:列出容器id docker container ls (4)停止容器 docker stop 容器名 (5)删除容器 rmi是删镜像的 删除容器时必须使容器处于停止状态 docker rm 容器名 (6)与容器交互 语法 docker(命令) exec(表示进入容器内部) -it(以交互模式运行容器和分配伪终端) aa4(容器名) /bin/bash(启用shell脚本) 参数 -i:以交互模式运行容器,通常与-t连用 -t:为容器重新分配一个伪终端,通常与-i连用 例子 docker exec -it aa4 /bin/bash 退出是exit回到宿主 (7)强制停止容器 docker kill aa6 (8)查看容器启动时日志 docker logs -f -t --tail 行数 容器ID docker logs -f -t --tail 5 mysql (9)查看容器中运行的进程 docker top 容器名 (10)查看容器内部详情 docker inspect 容器名 docker 容器之间不允许进行网络通信,docker内部有一个虚拟网卡(docker0),想要互通在创建容器的时候指定参数 -net并且创建桥接模式(docker network create wangluoming),wangluoming 创建好默认是桥接 (11)复制容器数据到宿主机 docker cp 容器ID:容器内路径 宿主机路径 复制mysql配置到宿主机: docker cp mysql:/etc/mysql /tmp/conf (12)查询docker网络连接模式 docker network ls (13)设置docker开机自启动 systemctl enable docker (14)设置别软件开机自启动 参数--restart always |