前言:宁可一思进,莫要一思停
文章参考docke官方文档https://docs.docker.com/
Docker安装
准备工作
Centos下docker有三种安装方式
- 大多数用户 设置 Docker 的存储库并从中安装,以便于安装和升级任务。这是推荐的方法。
- 一些用户下载 RPM 包并 手动安装并完全手动管理升级。这在诸如在无法访问互联网的气隙系统上安装 Docker 等情况下非常有用。
在测试和开发环境中,一些用户选择使用自动化的 便捷脚本来安装 Docker。
♾️ json 代码:
这里用官方推荐的方式安装安装yum-utils包提供管理 yum install -y yum-utils epel源 yum install epel-release -y 配置阿里的储存库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 查看docker安装包 yum list docker-ce --showduplicate 安装docker yum install docker-ce docker-ce-cli containerd.io
开始使用
♾️ json 代码:开启docker并设置为开机自启 systemctl start docker systemctl enable docker 拉取hello-world镜像 docker run hello-world
大致阅读一下可以看出docker获取镜像是先从本地获取,本地没有再去远程拉取
docker架构
docker镜像操作
docker官方镜像仓库https://hub.docker.com/repositories
命令行登入远程仓库
♾️ json 代码:docker login -u 用户名 -p 密码
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
根据提示查看登入凭据
cat /root/.docker/config.json
搜索镜像
docker search 镜像名
docker search mysql
docker镜像管理web界面
下载镜像
docker pull 镜像名
docker pull mysql
注意docker pull命令如果不指定版本默认下载最新版
注意只有dockerhub可以省略镜像路径,其他仓库不能省略
镜像结构: registry_name/repository_name/image_name:tag_name
如:docker pull docker.io/library/mysql:8.0.25
修改镜像名称
docker tag 镜像id 新镜像名称:版本
上传镜像到dockerhub
docker push docker.io/镜像名
删除镜像
docker rmi 镜像标识
删除所有镜像
docker rmi $(image id -q)
这里删除仅删除了本地的镜像
docker是镜像是一层一层的,拉取镜像只第一次拉取比较多,以后只拉取没有的
docker容器操作
查看容器进程
docker ps -a
启动容器(运行镜像)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
主要的几个选项
OPTIONS:选项
-i:表示启动一个可交互的容器,并持续打开标准输入
-t:表示使用终端关联到容器的标准输入输出上
-d:表示将容器放置在后台运行
-rm:退出后即删除容器
-name:表示定义容器唯一名称
IMAGE:表示要运行的镜像
COMMAND:表示启动容器时要运行的命令
交互式启动一个centos的容器
docker pull centos
docker run -it centos
非交互启动一个centos容器设置为后台运行并命名为test1
docker run -d --name test1 centos /bin/ping 127.0.0.1
关于后台运行
注意我们docker run启动容器的时候,常需要将其在后台运行,通常我们设置参数 -d 即可。
但后台运行,其实是有前提的,如果没有前台进程,那么实际运行完docker run命令后,会处于退出状态,即exited。
进入容器
进入容器的两种方式
docker exec
docker exec [options] CONTAINER(必选) COMMAND(必选) [ARG...]
docker exec -it test1 /bin/bash
官方命令解释:Run a command in a running container,翻译过来就是在一个正在运行的容器中执行命令,exec是针对已运行的容器实例进行操作,在已运行的容器中执行命令,不创建和启动新的容器。
docker attach
docker attach [OPTIONS] CONTAINER
docker attach test1
官方命令解释:Attach local standard input, output, and error streams to a running container,翻译过来,将本机的标准输入(键盘)、标准输出(屏幕)、错误输出(屏幕)附加到一个运行的容器,也就是说本机的输入直接输到容器中,容器的输出会直接显示在本机的屏幕上。
停止、重启、删除容器
docker stop 容器名/ID
docker restart 容器名/ID
docker rm 容器名/ID
删除所有容器
docker rm $(docker ps -a)