docker:
关于docker容器和镜像的区别
镜像就类似文件,又一层层叠加上去的,除了最上层不叫父层,其余都是,这都是概念性的,说白的,直接理解镜像就是类,容器就是实例,每个类可以创建多个实例,或者可以理解为文件程序就是镜像,容器就是进程,可以参照
https://www.cnblogs.com/baizhanshi/p/9655102.html
参照docker集装箱原理https://www.zhihu.com/question/28300645
---20201213
docker的安装
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
可以选择国内的一些源地址:
阿里云
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
这里可能会报错,log为
Error:
Problem: package docker-ce-3:20.10.0-3.el7.x86_64 requires containerd.io >= 1.4.1, but none of the providers can be installed
这是因为版本package docker-ce-3:20.10.0-3.el7.x86_64是最新的,和containerd.io不兼容,
(以后安装我都用 : sudo yum install docker-ce.x86_64 docker-ce-cli-3:24.0.6-1.el7 containerd.io)
解决的办法,先安装个io
sudo yum install containerd.io
然后指定一个低一点版本,不是最新的版本docker- ce
sudo yum install docker-ce-18.06.3.ce-3.el7
然后
sudo yum install docker-ce-cli
安装成功
查看版本
docker -v
Docker version 18.06.3-ce, build d7080c1
启动 Docker。
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
以上安装已经完成了
------
docker使用
[root@iZwz94psug6hqhkrqfwkloZ ~]# docker run -i -t -d ubuntu:15.10 /bin/bash --注1
5555657ac61cb9b0d89748cc8ed26b0f908f3f22b0f7671454557ea570274418
[root@iZwz94psug6hqhkrqfwkloZ ~]# docker ps --注2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5555657ac61c ubuntu:15.10 "/bin/bash" 4 seconds ago Up 3 seconds vigorous_austin
[root@iZwz94psug6hqhkrqfwkloZ ~]#
注1:
-
-t: 在新容器内指定一个伪终端或终端。
-
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
注2:查询所有的容器
docker 常用命令:
docker logs 2b1b7a428627 查询某个容器的日志
docker -p -a 查询所有容器的状态(类似查询对象)
docker images 查询所有的镜像(类似查询类)
-
docker attach 进入容器,退出会导致容器暂停
-
docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
docker exec -it 243c32535da7 /bin/bash 再执行exit 对应的容器还是up状态
docker attach 09e66ec36753 再执行exit,09e66ec36753 对应的容器就Exited状态了
service docker start 启动docker
systemctl enable docker 开启启动docker
linux一下权限命令:
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 。
chown 需要超级用户 root 的权限才能执行此命令。
只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。
使用权限 : root
参考:https://www.runoob.com/linux/linux-comm-chown.html
Linux chmod命令
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
使用权限 : 所有使用者
参照菜鸟教程:https://www.runoob.com/linux/linux-comm-chmod.html
参照菜鸟教程 https://www.runoob.com/docker/centos-docker-install.html
说白了chmod可以区分各个用户或组有哪些权限(wrx 421)
而 chown只是决定文件是归属于谁
最后安装Jenkins
参照:https://www.cnblogs.com/xiaobug/p/13932634.html