Centos7 docer安装记录

Centos7已自动配置yum

1 安装

yum install docker

yum源安装不是最新版,是1.13.1,这个旧版本兼容性相对比较好

 

 

 可以看到只有client版本信息

下面还显示不能连接到dockerdaemon(沙箱,也就是主机),原因是docker服务还没启动,只检测到客户端

 

 

#启动服务
service docker start
#设置docker随着机器一起启动
chkconfig docker on
或者
sudo systemctl start docker
sudo systemctl enable docker

 

2 卸载:

1.查询安装过的包
yum list installed | grep docker
docker-engine.x86_64                 17.03.0.ce-1.el7.centos         @dockerrepo
 2.删除安装的软件包
yum remove docker-engine.x86_64  -y 
3.删除镜像/容器等
rm -rf /var/lib/docker

3 安装最新版

#最新版安装,必须先更新yum源,配置yum
#安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[root@bogon ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
[root@bogon ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或者
[root@bogon ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#或者直接用wget 
wget  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#docker-ce是社区版,免费的
[root@bogon ~]# yum install docker-ce -y
#或者安装指定版本
yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y

 

体验docker

#进入docker世界
docker run hello-docker

 

 

 docker配置加速器,可以加快从官方拉取镜像到本地

docker是国外的服务器,一般会配置加速器
#开启docker加速
vi /etc/docker/daemon.json
#输入:
{"registry-mirrors":["https://registry.docker-cn.com"]}

如果你是腾讯云的服务器那么请加入:{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}

#保存成功后,重启docker:service docker restart
[root@bogon ~]# service docker restart
#查看宿主机有哪些docker容器
docker ps
#查看宿主机有哪些docker镜像
docker images

docker从官方拉取镜像到本地

#拉取centos镜像
docker pull centos

#启动并进入容器(容器名为cent,centos为镜像名)
docker run -it --name cent centos:latest /bin/bash
#启动并保持容器前台进程(容器也就不会关闭),但不进入容器;it是前台交互的进程
docker run -dit --name cent2 centos
#进入已启动的docker容器
---attach生产环境【不推荐使用】,多人时候一个阻塞了会造成其它人也阻塞 docker attach cent #启动完就退出并关闭 docker run -d --name cent2 centos #退出容器并关闭 exit #退出但不关闭 Ctrl+P+Q #优雅关闭cent容器(发信号后等待10s) docker stop cent #不优雅关闭【不推荐使用】 Kill cent #删除已停止的容器cent docker rm cent #重新启动容器cent,但不进入 docker start cent #重新启动容器cent并进入容器环境中交互 docker exec -it cent /bin/bash #查看当前镜像 docker images #删除镜像 docker rmi centos #强制删除镜像 docker rmi -f centos **************************************** #宿主机查看容器的日志 docker logs cent #宿主机ip ip addr #查看容器cent的ip docker inspect cent

###########docker进入已启动的容器

推荐进入容器的方式

通过attach进入容器的话,当使用exit退出容器的时候,对应的容器也停止运行了,所以在生产环境中很少使用所以生产环境一般不用如果是通过 attach 进入的容器,

在退出容器的时候,如果不想让容器停止运行的话, 就不能使用exit命令或者Ctrl+D快捷键的形式退出,

而是使用 Ctrl + P + Q 组合键退出容器。

推荐进入容器的方式:

【方式一】:通过容器别名进入容器:注意 -it 不能丢   docker exec -it java /bin/bash

【方式二】:通过容器ID进入容器:docker exec -it 91 /bin/bash如果是通过 exec 命令进入的容器,在退出容器的时候,就可以使用exit或者Ctrl+D快捷键退出容器,同时容器不会停止运行,这也是execattach的最大区别。当然,你也可以使用Ctrl + P + Q 组合键退出容器,容器一样不会停止运行。

容器启动后,本机并不能直接访问到容器,但是能访问宿主机网段,所以可以把容器映射到宿主机端口,本机直接访问宿主机的该端口

 

docker容器文件挂载

数据挂载问题:docker不应该负责持久化信息,换句话说,每次要启动容器可以创建后运行,关闭后即可删除

也就是每次都是docker run ,而不是docker start

好处:不需要关心以前数据,也就是没有负担

docker容器运行产生的数据/文件等待,不应该放在容器内部,而是放在容器外部,也就是宿主机

 

volume参数创建容器数据卷

 

第一种:容器的文件挂载到宿主机,可以理解为宿主机和容器共享同一个文件夹

 

 

 直接-v /xxx/yyy表示在容器内创建/xxx/yyy作为挂载文件夹,并挂载在宿主机默认位置

 

我们通过docker inspect data查看容器元数据,可看到挂载信息

 

 

 

 

 

 在容器端添加一个文件

 

 

 回主机目录查看,果然存在此文件

 

 

 在主机方添加一个文件

 

 回容器里查看,果然也同步增加了此文件

 

 指定主机目录方式挂载文件格式:-v path1path2

如下命令,容器方会自动增加一个data目录

 

 宿主机方,同样自动增加一个/opt/data目录

 

 

 

docker容器启动时候,如果要挂载到在宿主机的一个目录,如

这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录

容器的目录不能为相对路径,也就是不是以/开头

 

宿主机中的文件目录

如果不存在,则会自动生成;

如果存在,则直接使用

 

CentOS是红帽(rethat)公司,也就是yum源是红帽在维护

posted @ 2021-12-20 13:18  howtosay  阅读(99)  评论(0编辑  收藏  举报