Centos7.6 安装docker
1.基础环境准备
1.网络参数设置
$ cd /etc/sysconfig/network-scripts/
$ vim ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
重启网络
$ systemctl restart network
2.设置ssh服务
$ vim /etc/ssh/sshd_config
UseDNS=no
3.关闭 firewalld
$ systemctl stop firewalld
$ systemctl disable firewalld
4.关闭SELinux
setenforce 0 临时关闭
vim /etc/selinux/config 永久关闭
SELINUX=disabled
5.安装工具
yum -y install vim net-tools iptables-services lrzsz tree wget
6.清空防火墙规则
$ iptables -F
7.设置永久挂载
$ vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
$ mount -a #自动挂载
8.shutdown -h now 关机做快照
2.下载docker,在阿里镜像站下载docker软件源
网址:
https://developer.aliyun.com/mirror/?spm=a2c6h.25603864.0.0.54f928b9jJDAGv
3.下载docker
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
$ echo $?
0
$ ls /etc/yum.repos.d/
back CentOS-Media.repo docker-ce.repo
4.安装docker
$ yum -y install docker-ce
安装docker报错:
一. 问题重现
在centos7.6上安装docker,出现如下问题:
从报错中可以看到,缺少:
container-selinux ,fuse-overlayfs slirp4nets
只要把这三个包安装上即可
二. 解决过程
2.1 查看系统中有没有这三个包
[root@mufenggrow ~]# yum search container-selinux
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
警告:没有匹配 container-selinux 的软件包
No matches found
#使用 search查看发现没有这个包。
#增加官网源的可用存储库 extras,这些存储库提供了默认基本库和更新存储库中未包含的软件包
2.2 打开官网目录
官网软件包目录: http://mirror.centos.org/centos/7/extras/x86_64
可以看到在这个目录中有相关的Packages, 而我们一会就要使用这个Packages中的软件包,需要安装的包都在这里面。
在网页使用ctrl+F 查找:
可以查看到你想要的包
2.3 在docker-ce.repo中添加centos-extras源
vim /etc/yum.repos.d/docker-ce.repo
#在文档最上面添加源
[centos-extras]
name=Centos extras - $basearch
enabled=1
gpgcheck=0
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
2.4 尝试安装系统提示的三个包
安装:
$ yum install slirp4etns fuse-overlayfs container-selinux
#这三个包安装好后,再去按照正常的流程安装docker,就不会再报错了。
5.添加到开机自启项,并且启动服务,查看状态是否运行
$ systemctl enable docker #设置docker开机自启动
$ systemctl start docker #启动docker
$ systemctl status docker #查看docker运行状态
6.查看docker版本
$ docker --version #查看docker版本
Docker version 20.10.22, build 3a2c30b
$ docker version #查看docker的详细信息
Client: Docker Engine - Community
Version: 20.10.22
API version: 1.41
Go version: go1.18.9
Git commit: 3a2c30b
Built: Thu Dec 15 22:30:24 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.22
API version: 1.41 (minimum version 1.12)
Go version: go1.18.9
Git commit: 42c8b31
Built: Thu Dec 15 22:28:33 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.14
GitCommit: 9ba4b250366a5ddde94bb7c9d1def331423aa323
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
7.docker命令
#拉取镜像
$ docker pull
$ docker pull mysql:5.7
#查询当前有哪些镜像
$ docker images
#创建并启动一个容器,将容器中的某个端口映射到本地的某个端口上
$ docker run -p 本地端口:容器端口
#查看已经启动的容器
$ docker ps
$ docker ps -a #查看所有容器 -----包含正在运行和已停止的
#搜索mysql基础镜像
$ docker search mysql
8、拍摄快照
9.安装docker加速器
$ cd /etc/docker/
$ ls
key.json
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://qh8rmvm5.mirror.aliyuncs.com"]
}
EOF
$ sudo systemctl daemon-reload #重新加载文件
$ sudo systemctl restart docker #开机自启
$ echo $?
10.测试拉取镜像
$ docker pull centos:centos7.9.2009 #拉取centos的镜像源
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:centos7.9.2009
docker.io/library/centos:centos7.9.2009
$ echo $?
0
$ docker images #查看当前的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos centos7.9.2009 eeb6ee3f44bd 15 months ago 204MB
$ docker run -itd eeb6ee3f44bd /bin/bash #运行镜像并放入后台
#-it 以交互的模式运行
#d 放入后台
3c7efbdf44435e87f9840621f2b33f451399ca384b1d2ae3e99bc9c4e39eb949
$ docker ps -a #查看启动的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c7efbdf4443 eeb6ee3f44bd "/bin/bash" About a minute ago Up About a minute friendly_dhawan
$ docker exec -it 3c7efbdf4443 /bin/bash #登录容器
[root@3c7efbdf4443 /]# whoami
root
[root@3c7efbdf4443 /]# hostname
3c7efbdf4443 #容器的id相当于一个小的虚拟机在运行
[root@3c7efbdf4443 /]# vim
bash: vim: command not found
[root@3c7efbdf4443 /]# ifconfgi
bash: ifconfgi: command not found
#没有vim和ifconfig工具需要下载(等同于安装了一个最小化系统)
Crtl+pq #退出容器放入后台运行
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9adfb794fdc eeb6ee3f44bd "/bin/bash" 4 minutes ago Up 4 minutes agitated_ritchie