必会系列!别给我说你还不会 Docker 的安装与使用!
Docker现在是IT界领先的软件容器平台,Docker的出现及流行,让开发者可以打包应用以及依赖包到一个可移植的容器中,通过容器可以实现应用的快速部署,无论部署到Linux机器还是Windows机器上,容器中的应用都会运行在同一种环境下。可以说,Docker使得创建、部署和管理容器变得特别简单。
以上是官话,不理解也没关系,重要的是会操作!
如果你之前已经了解Docker,但是没有实际操作使用过,那么请接着看,接下来就自己动手搞一搞Docker。
使用安装脚本安装
官方提供了自动安装脚本,可以使用命令行自动安装,命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 复制代码
由于外网太慢,也可以使用国内的daocloud自动安装命令:
curl -sSL https://get.daocloud.io/docker | sh 复制代码
手动安装
卸载已经安装的docker旧版本
如果机器之前已经安装过docker,需要执行以下命令,卸载旧的docker:
列出docker安装过的相关包
sudo yum list installed | grep docker 复制代码
containerd.io.x86_64 1.4.11-3.1.el7 @docker-ce-stable docker-ce.x86_64 3:20.10.9-3.el7 @docker-ce-stable docker-ce-cli.x86_64 1:20.10.9-3.el7 @docker-ce-stable docker-ce-rootless-extras.x86_64 20.10.9-3.el7 @docker-ce-stable docker-scan-plugin.x86_64 0.8.0-3.el7 @docker-ce-stable 复制代码
分别删除
yum -y remove containerd.io.x86_64 \ docker-ce.x86_64 \ docker-ce-cli.x86_64 \ docker-ce-rootless-extras.x86_64 \ docker-scan-plugin.x86_64 复制代码
删除相关软件包
sudo yum remove docker docker-common docker-selinux docker-engine 复制代码
删除相关的镜像与容器
sudo rm -rf /var/lib/docker 复制代码
安装依赖并设置docker镜像
docker依赖于系统的一些必要的工具,可以提前安装。
yum install -y yum-utils device-mapper-persistent-data lvm2 复制代码
设置docker镜像(阿里云镜像)
sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 复制代码
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io 复制代码
启动docker
启动:
sudo systemctl start docker # 或者 service dockers start 复制代码
当执行完启动命令,可以使用docker version
命令检查docker是否安装成功。
配置开机自启动:
sudo systemctl enable docker 复制代码
停止
sudo systemctl stop docker # 或者 sudo service docker stop 复制代码
重启
sudo systemctl restart docker # 或者 sudo service docker restart 复制代码
查看docker状态
sudo systemctl status docker # 或者 sudo service docker status 复制代码
Docker常用命令
docker镜像相关命令
# 搜索镜像 docker search 镜像名 # 拉取镜像 docker pull 镜像名:tag # 查看已下载的镜像 docker images # 删除镜像 docker rmi 镜像ID # 强制删除镜像 docker rmi -f 镜像ID 复制代码
docker容器相关命令
新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用OPTIONS说明:
-i:以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name:指定容器名称
-d:创建一个守护进程在后台运行容器,并返回容器ID
-P:随机分配端口映射
-p:指定端口映射,前者宿主机端口,后者是容器的映射端口
-m:设置容器使用内存大小
例如,使用镜像boystar/ubantu
以交互模式启动一个命名为my_ubantu
容器,在容器内执行/bin/bash命令。
[root@centos7 ~]# docker run -it --name my_ubantu boystar/ubantu /bin/bash root@6065ec1d0437:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@6065ec1d0437:/# 复制代码
查看容器
docker ps [OPTIONS]
常用OPTIONS说明:
-a:查看全部容器
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
退出容器
exit:容器停止退出
ctrl+P+Q 容器不停止退出
进入容器
docker attach 容器名称 复制代码
或者:
docker exec -it 容器名称/容器ID /bin/bash 复制代码
其他命令
# 启动容器 docker start 容器名称/容器ID # 停止容器 docker stop 容器名称/容器ID # 强制停止容器 docker kill 容器名称/容器ID # 删除容器 docker rm 容器名称/容器ID # 强制删除容器 docker rm -f 容器名称/容器ID # 删除所有容器 docker rm $(docker ps -a -q) # 查看容器日志 docker logs -t -f 容器名称/容器ID 复制代码
实战 Docker 安装 Redis
拉取redis镜像
docker pull redis:latest 复制代码
启动容器
docker run -itd --name my_redis -p 6379:6379 redis 复制代码
其中 -p 6379:6379:映射容器服务的6379端口到宿主机的6379端口。外部可以直接通过宿主机ip:6379访问Redis的服务。
运行 redis 客户端测试
[root@centos7 ~]# docker exec -it my_redis /bin/bash root@862c8129f379:/data# redis-cli 127.0.0.1:6379> set test 1 OK 127.0.0.1:6379> 复制代码
总结
本篇主要介绍了Linux下Docker的安装及使用,至于Docker的概念及架构暂不介绍。还有就是国内从Docker Hub拉取镜像时可能会有问题,可以配置镜像加速器,Docker官方和国内很多云服务商都提供了国内加速器服务,此处也不赘述,想了解的可以自行了解配置。
作者:tigeriaf
链接:https://juejin.cn/post/7018093567105040414