必会系列!别给我说你还不会 Docker 的安装与使用!

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

Docker现在是IT界领先的软件容器平台,Docker的出现及流行,让开发者可以打包应用以及依赖包到一个可移植的容器中,通过容器可以实现应用的快速部署,无论部署到Linux机器还是Windows机器上,容器中的应用都会运行在同一种环境下。可以说,Docker使得创建、部署和管理容器变得特别简单。

以上是官话,不理解也没关系,重要的是会操作

如果你之前已经了解Docker,但是没有实际操作使用过,那么请接着看,接下来就自己动手搞一搞Docker。

image.png

使用安装脚本安装

官方提供了自动安装脚本,可以使用命令行自动安装,命令如下:

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官方和国内很多云服务商都提供了国内加速器服务,此处也不赘述,想了解的可以自行了解配置。

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !

猜你喜欢

转载自juejin.im/post/7018093567105040414