小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
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官方和国内很多云服务商都提供了国内加速器服务,此处也不赘述,想了解的可以自行了解配置。
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !