文章目录
关注微信公众号:码农Share,更方便的获得知识
Centos8上安装Docker
Docker版本要求
1、要求 CentOs 系统的内核版本高于 3.10,可通过如下指令查看版本
uname -r
更新yum
安装docker ce即社区免费版,先安装必要的软件包,安装yum-utils,它提供一个yum-config-manager单元,同时安装的device-mapper-persistent-data和lvm2用于储存设备映射(devicemapper)必须的两个软件包。
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
紧接着配置一个稳定(stable)的仓库 ,仓库配置会保存到/etc/yum.repos.d/docker-ce.repo文件中。此处我们使用阿里云。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新Yum安装的相关Docke软件包
sudo yum makecache fast
出现如下错误:
yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
更新索引的时候出错,即centos8没有该参数,解决办法为:去掉fast参数
查看仓库版本,并指定版本安装
查看版本
yum list docker-ce --showduplicates | sort -r
安装
yum install docker-ce-3:19.03.9-3.el7.x86_64
出现如下错误:
Problem: package docker-ce-3:18.09.9-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
根据提示,需要containerd.io的版本 >= 1.2.2-3,操作如下
(1)安装wget指令
yum install wget
(2)获取rpm包
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
(3)升级containerd.io(安装rpm包)
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
(4)重新安装docker-ce
yum install docker-ce-3:19.03.9-3.el7.x86_64
启动docker
(1)设置开机自启动
sudo systemctl start docker
sudo systemctl enable docker
(2)启动
sudo systemctl start docker
(3)验证
docker version
说明安装成功
或者
sudo docker ps
说明安装成功
(4)查看docker运行状态
systemctl status docker
Docker常用的命令
1、拉取镜像
docker pull ubuntu
2、首次启动镜像
docker run -it --name ubuntu-test ubuntu /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
3、启动已存在容器
docker start <容器 ID/Name>
docker restart 容器id1 [容器id2] [...] #重启
4、运行的docker容器列表
docker ps
docker ps –a
5、停止容器
docker stop <容器 ID/Name>
6、进入容器
docker exec -it name /bin/bash
从这个容器退出,不会导致容器的停止,推荐大家使用
7、查看容器的某些进程PID
doker top name
8、删除容器
docker rm name
9、镜像列表
docker images
10、启动所有容器
docker start $(docker ps -a -q)
11、复制文件到容器
docker cp sentinel.conf redis-master:/usr/local/redis
12、创建容器时指定IP
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。
在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。
我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。
查看网络模式
docker network ls
创建一个新的bridge网络
docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.0.1 dockercompose
查看网络信息
docker network inspect dockercompose
创建容器并指定容器ip
docker run -it --name sentinel1 --network=dockercompose --ip 172.19.0.6 -v /data/docker_redis/sentinel/sentinel-slave1.conf:/usr/local/redis/sentinel.conf -d -p 26380:26379 redis /bin/bash
13、创建快照
查看现有容器
docker ps/docker ps -a
创建容器快照
docker export ID > test.tar
导入并验证
cat 快照.tar | docker import - centos:latest
docker run -it ID(镜像) /bin/bash