①未安装 sshd 服务
查看 sshd 服务 ps –e|grep ssh
重启sshd 服务 service sshd restart
禁用VirtualBox Host Only
打开 VirtualBox,选择Linux -> 设置 -> 网络 ->连接方式 ->桥接网卡
界面名称选择有线方式连接
点击OK
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”(一次镜像,处处运行
)。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例
,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台
、跨服务器
。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
且也没有进行硬件虚拟
。因此容器要比传统虚拟机更为轻便
镜像(image)
: 就是一个只读的模板
。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器
。容器(Container)
: 容器就类似于一个虚拟化的运行环境
,容器是用镜像创建的运行实例
。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。仓库(Repository)
: 是集中存放镜像文件的场所。cat /etc/redhat-release
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce docker-ce-cli containerd.io
// 启动docker
systemctl start docker
// 开机自启
systemctl enable docker
// 停止/重启
systemctl stop/restart docker
systemctl daemon-reload
systemctl restart docker
//启动docker
systemctl start docker
//停止docker
systemctl stop docker
// 重启docker
systemctl restart docker
// 查看docker状态
systemctl status docker
// 开机启动
systemctl enable docker
// 查看docker概要信息
docker info
列出本地主机上的镜像
各个选项说明:
REPOSITORY
:表示镜像的仓库源TAG
:镜像的标签版本号IMAGE ID
:镜像IDCREATED
:镜像创建时间SIZE
:镜像大小同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
OPTIONS说明:
-a
:列出本地所有的镜像(含历史映像层)-q
:只显示镜像ID。命令:docker search [OPTIONS] 镜像名字
OPTIONS说明:
--limit
: 只列出N个镜像,默认25个命令:docker pull 镜像名字[:TAG],没有TAG就是最新版
命令: docker system df 查看镜像/容器/数据卷所占的空间
命令: docker rmi 某个XXX镜像名字ID 删除镜像
删除单个
: docker rmi -f 镜像ID
删除多个
: docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部
: docker rmi -f $(docker images -qa)
仓库名、标签都是的镜像,俗称虚悬镜像
有镜像才能创建容器,先装一个Ubuntu镜像: docker pull ubuntu
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
// OPTIONS说明(常用)有些是一个减号,有些是两个减号
--name="容器新名字" 为容器指定一个名称
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i:以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
docker ps [OPTIONS]
// OPTIONS说明(常用)
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
// 退出容器
exit run进去容器,exit退出,容器停止
ctrl+p+q 进去容器,ctrl+p+q退出,容器不停止
// 启动已停止运行的容器
docker start 容器ID或者容器名
// 重启容器
docker restart 容器ID或者容器名
// 停止容器
docker stop 容器ID或者容器名
// 强制停止容器
docker kill 容器ID或容器名
// 删除已停止的容器
docker rm 容器ID
// 一次性删除多个容器实例
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的后台运行模式。
使用镜像centos:lates
t以后台模式启动一个容器
docker run -d centos
然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这时docker run -d 容器名
便可解决这个问题
// 查看容器日志
docker logs 容器ID
// 查看容器内部细节
docker inspect 容器ID
// 进入正在运行的容器并以命令行交互
docker exec -it 容器ID bash
重新进入docker attach 容器ID
// attach和exec区别
attach 直接进入容器启动命令的终端,不会启动新的进程。用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
// 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
// 导入和导出容器
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
export 导出容器的内容留作为一个tar归档文件[对应import命令]
import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
镜像是一种轻量级、可执行的独立软件包
,它包含运行某个软件所需的所有内容
,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS
默认Ubuntu镜像安装vim commit为新的镜像
apt-get update
更新包管理工具apt-get -y install vim
安装vimdocker commit -m="add vim" -a="zzh" e7908b4df745 ubuntu/v2
commit提交创建完命名空间后,创建镜像仓库
点击创建的镜像仓库可以看到提供的命令
Docker挂载主机目录访问如果出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个–privileged=true参数即可
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
// 默认是rw 只读为ro(read only)
数据卷作用和特点:
查看数据卷是否挂载成功:
docker inspect 容器ID