ubuntu的安装
更新软件源
apt update
执行安装
apt install -y docker.io
查看安装状态
安装成功就启动了
systemctl status docker //查看状态
systemctl start docker //启动
systemctl stop docker //停止
systemctl restart docker //重启
4.1.4 跑一个入门镜像
docker run hello-world
4.1.5 查看安装的镜像
docker images
centos的安装
更新yum源
yum update
让yum源最新
执行安装
yum install -y docker
安装完成之后查看一下:
yum list installed |grep docker
启动docker
systemctl start docker//启动
启动之后查看状态:
systemctl status docker//查看状态
跑一个入门镜像
docker run hello-world
4.2.5 查看安装的镜像
docker images
Docker在centos7上安装完毕,还有很多方式可以安装docker,比如通过gostcloud安装,还有官方脚本安装,
等待,自行去拓展.
Docker的使用
运行hello-world
Hello-world是官方推荐的学习入门镜像,功能很简单,运行之后会打印出一句话. 这个镜像我们已经运行过,但是里面有很多我们不清楚的地方,那么现在来解
由上面的截图我们可以看到执行之后又对应的输出.
docker run hello-world 这条命令包含了三个部分:
Docke : docker的客户端程序
Run: 子命令,用于运行容器
Hello-world : 镜像的名字
这条命令首先回去本地查找是否有hello-world这个镜像,如果没有则会从dockerhub(docker主仓库)去拉
取,之后会启动一个容器,会把镜像装载到容器中运行.
所有的docker命令格式都是如下格式:
docker [options] command [arg…]
# Options是运行的参数
# Command是运行的子命令
# Arg 是该条子命令对应的参数集合
现在来查看本地的镜像:
通过docker images 可以看到本地到底有哪些镜像.
这里我们看到有一个hello-world镜像.
对应参数的解释:
Repository : 镜像的名字
Tag: 镜像版本,如果run的时候不带版本,那么就会拉取最新的latest.
Image id : 这个是镜像的截取后的唯一id
Created: 这个镜像是在什么时候创建的,指的是仓库里面的创建时间.
Size: 镜像的大小.
镜像和容器
镜像(Images):
镜像是一个静态的文件,它包含了一个完整的文件系统,包括应用程序的代码、运行时和系统工具,以及用于启动容器的配置设置。
镜像通常是只读的,一旦创建,就不能更改。
镜像可以用来创建多个相同的容器,因此它们是容器的模板。
容器(Containers):
容器是基于镜像创建的实例。它是一个独立的进程,具有自己的文件系统、网络和进程空间。
容器可以进行修改,包括添加、删除或修改文件。这些更改只影响容器本身,不会影响其他容器或原始镜像。
容器可以启动、停止、删除和重新启动,以满足应用程序的需求。
镜像和容器之间的关系:
容器是基于镜像创建的实例。
多个容器可以使用相同的镜像,每个容器都可以独立运行,具有自己的文件系统和运行环境。
docker的入门操作
入门操作涉及到的命令:
docker info
docker search
docker pull
docker ps
docker start/stop
查看容器基本信息:docker info
Docker info 是经常用来查看运行状态及版本信息的命令,是整个docker daemon守护进程运行状况的缩
影,包括容器个数,镜像个数,daemon版本,使用的存储驱动等信息.
查找镜像: docker search
如果要拉取某个镜像,可以先对镜像进行查询.
例如:
docker search mysql //查找mysql镜像
下载镜像: docker pull
docker pull ubuntu //下载ubuntu的镜像
我们来下载一个Ubuntu(官方推荐的基础镜像)
查看一下:
docker images //查看镜像
如果本地有,就不会再去仓库里面下载:
如果镜像下载很慢,可以配置一个官方的中国加速镜像, 修改 /etc/docker/daemon.json(如果文件不存在 请新建该文件) 加上:
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
],
"dns": ["8.8.8.8","8.8.4.4"]
}
重启docker服务即可生效.
systemctl restart docker
复制文件:docker copy
容器的空间相对隔离,改变容器中的文件就变得不是那么容易。使用docker cp命令
可以复制宿主机文件到容器内部。
命令:
复制宿主机文件到容器 : docker cp 宿主机目录及文件 容器名称:容器目录
准备一个文件: my.html
进行复制/
先要看容器里面的根目录:
docker cp my.html gxa-apache:/usr/local/apache2/htdocs/my.html
查看结果
挂在虚拟目录
在run的时候进行挂载
apache的根目录:/usr/local/apache2/htdocs
宿主机的:/root/s347挂载进去
挂载的参数:-v 宿主机目录:容器目录
docker run -d -p 8080:80 -v /root/s347:/usr/local/apache2/htdocs --name s347- apache httpd