Docker安装和常用镜像容器数据卷命令
Docker安装和常用镜像容器数据卷命令
docker 安装
- yum包更新到最新
yum update
- 卸载旧版本的docker
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- 安装需要的软件包
yum install -y yum-utils
- 设置镜像
yum-config-manager \\ --add-repo \\ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 阿里云镜像
- 更新索引
# 更新yum软件包索引 yum makecache fast
yum makecache fast
- 安装docker社区版
安装Docker, docker-ce 社区版 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
或
yum install -y docker-ce
安装docker出现的页面都按y
- 启动docker
systemctl start docker
- 查看安装后的docker版本
docker version
- 运行dokcer的hello world程序判断是否安装成功
docker run hello-world
dokcer卸载
卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
删除资源
rm -rf /var/lib/docker
/var/lib/docker docker的默认工作路径!
docker命令
docker服务命令
systemctl命令
systemctl start xinetd --启动服务
systemctl status xinetd --查看服务状态
systemctl stop xinetd --停止服务
systemctl restart xinetd --重启服务
systemctl list-unit-files --列出所有可用单元
systemctl mask firewalld --注销服务
使用systemctl命令操作docker启动
systemctl start docker --启动docker
systemctl status docker --查看docker的服务状态 --active表示激活
systemctl stop docker --停止dokcer服务
配置开机启动docker
systemctl enable docker
docker镜像命令
docker镜像命令主要学习四个基本的操作
- 查看镜像
- 搜索镜像、
- 拉取镜像
- 删除镜像
查看镜像
查看docker本地拥有的镜像
docker images --查看本地镜像
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 18 months ago 13.3kB
[root@localhost /]#
TAG:版本号(默认最新版本)
REPOSITORY:镜像名称
IMAGE ID :镜像id
搜索镜像
搜索远程仓库–docker hub中是否拥有该镜像
docker search redis
拉取镜像
拉取镜像可以指定版本号 在后面加 :版本号如果不指定默认下载最新版本
docker pull redis
下载官方的版本时可以在docker hub网站查看官方维护的指定版本
删除镜像
删除镜像使用rmi命令后面加上镜像的id
也可以使用容器和版本的来删除重复的镜像
docker rmi 31f08b90668e
docker rmi redis: latest
[root@localhost /]# docker rmi redis:latest
Untagged: redis:latest
Untagged: redis@sha256:7b83a0167532d4320a87246a815a134e19e31504d85e8e55f0bb5bb9edf70448
Deleted: sha256:31f08b90668e9730067b53acbd28e536dadb25c746f4379a8a83c84fb1c48d1a
Deleted: sha256:98943fc66a49804e9bf8a28fc0b6f62bcaf6b696be1218a0927db4e33400cd09
Deleted: sha256:ad80a8514c506371262d5e587cb61186cfd702a201c95d6be2f30e5a57d83f4a
Deleted: sha256:bd9f9ef600ac5962f43837a51f529ba06ae9e3098cdac16a2716605b8228990b
Deleted: sha256:59b8469f7cc3da8a15213bd147d7f93e0d7935a8cd2ba61717a6b3eb39944847
Deleted: sha256:d1457881cdd269d73482e45a189379c82f91bd28d6506981a31ab98f33a3374f
Deleted: sha256:3af14c9a24c941c626553628cf1942dcd94d40729777f2fcfbcd3b8a3dfccdd6
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 18 months ago 13.3kB
docker容器相关命令
一个dokcer容器中可以包括多个镜像,一个docker中可以有多个容器
- 查看容器
- 创建容器
- 进入容器
- 启动容器
- 停止容器
- 删除容器
- 查看容器信息
创建容器
创建容器使用的命令时docker run命令
后面需要跟一些参数 -i长时间运行 -t容器创建分配终端 连起来-it
–name 名字
centos:7 后面加上根据那个镜像来创建容器
最后后面可以跟进入容器初始化的命令 /bin/bash
完整命令:docker run -it --name c1 centos:7 /bin/bash
[root@localhost /]# docker run -it --name c1 centos:7 /bin/bash
[root@0fa36ee45766 /]# --进入@0fa36ee45766容器的内部
进入容器之后退出容器exit命令
[root@0fa36ee45766 /]# exit
exit
[root@localhost /]#
第二种创建方式 -d(后台运行创建 exit后不会停止运行)
创建容器之后不会立即进入容器
docker run -id --name c2 centos:7
[root@localhost /]# docker run -id --name c2 centos:7 /bin/bash
a9586f84cdb0b9c9038fc7b6a5fff582ed0e7229d1c327f1ae48ae753a1af1e3
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9586f84cdb0 centos:7 "/bin/bash" 17 seconds ago Up 15 seconds c2
[root@localhost /]#
创建之后的容器c2处于运行态-it交互容器 -id守护容器
查看容器
通过-it创建的容器使用exit命令之后自动停止运行该容器
docker ps --查看正在运行的容器
docker ps -a查看所有容器
进入容器
docker exec 命令 --进入容器中
进入容器的过程中要创建终端
[root@localhost /]# docker exec -i c2 /bin/bashexit
[root@localhost /]# docker exec -it c2 /bin/bash
[root@a9586f84cdb0 /]#
docker exec -it c2 /bin/bash
启动容器
启动关闭的c1容器
docker start c1
关闭容器
在启动c1容器的同时关闭
docker stop c2
删除容器
docker rm命令删除容器 后面可以加容器的id 或者 容器的名字
开启的容器是不能被删除的
查看容器信息
使用docker inspect+容器名称 命令查看容器信息
容器的数据卷
定义:数据卷是宿主机的一个目录或文件
当容器目录和数据卷目录绑定之后,对方的修改会立即同步
一个数据卷可以被多个容器同时挂载
一个容器也可以挂载多个数据卷
配置数据卷
-
启动容器时,使用-v参数设置数据卷
docker run …-v 宿主机目录(文件):容器内目录(文件)
将宿主机上的目录和容器目录进行挂载
注意事项:
- 目录必须是绝对目录
- 目录不存在自动创建
- 可以挂载多个数据卷
docker run -it --name=c3 -v /root/chenruxu:/root/chenruxu_container centos:7 /bin/bash
[root@bc530ed55ef4 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@bc530ed55ef4 /]# cd /
[root@bc530ed55ef4 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@bc530ed55ef4 /]# cd ~
[root@bc530ed55ef4 ~]# ls
anaconda-ks.cfg chenruxu_container
两个数据文件里面的内容同步删除容器后宿主机目录不变 数据卷可以挂载到多个容器中去
如果一个数据卷挂载到多个容器中,一个容器改变数据卷,两个容器同步改变----间接的实现容器之间的通信
数据卷容器
多容器进行数据交换
- 多个容器挂载同一个数据卷
- 数据卷容器
在两个容器的基础上创建第三个容器,其中第三个容器挂载一个数据卷,前两个容器与第三个容器之间相互关联。
将第三个容器称为数据卷容器
配置数据卷容器
- 创建启动c3数据卷容器。使用-v/volume 参数设置数据卷
docker run -it --name=c3 -v/volume centos:7 /bin/bash
系统自动分配一个目录作为数据卷
- 启动c1 c2容器,使用–volumes-from 容器名 参数来设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash