持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
centos7安装docker及基础命令
Docker是一个开放源码的产品,分为 社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了,本篇博文的教程也只是针对社区版。
1、安装操作系统centos7
-
新安装的centos没有ip地址
# 查看ip地址 ip addr -
编辑网络配置文件,将onboot改为yes
vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 重启网络 # CentOS7执行这条 service network restart # CentOS8执行这条 nmcli c reload -
用MobaXterm连接上centos,方便操作
2、docker安装
官方文档:docs.docker.com/engine/inst…
-
更新yum包
sudo yum update -y -
安装一些必要的依赖包
sudo yum install -y yum-utils -
配置 docker-ce 仓库
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo -
安装 docker-ce
sudo yum install -y docker-ce docker-ce-cli containerd.io -
设置 Docker 开机自启
sudo systemctl enable docker -
启动 Docker 服务
sudo systemctl start docker -
验证
Docker,查看docker容器版本[root@localhost pzx]# docker -v Docker version 20.10.16, build aa7e414 -
运行hello-world测试容器
[root@localhost pzx]# sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ....
3、docker基础语法
3.1、镜像操作命令
-
查看所有镜像
docker images -
从dockerhub种搜索镜像
docker search nginx -
下载某个镜像
docker pull redis -
删除镜像
docker rmi -f 镜像id # 删除单个 docker rmi -f 镜像名:tag 镜像名:tag # 删除多个 docker rmi -f $(docker images -qa) # 删除全部 -
镜像导入
# 方式1 docker load < <文件名> # 方式2 docker load --input <文件名> # 方式2的简写 docker load -i <文件名>-
实例
# 方式1 docker load < ./nginx-latest.tar # 方式2 docker load --input ./nginx-latest.tar # 方式2的简写 docker load -i ./nginx-latest.tar
-
-
镜像导出
docker save -o <保存路径> <镜像名称:标签>-
实例
docker save -o ./nginx-laest.tar nginx:latest
-
3.2、容器命令
-
新建容器并启动
docker run [OPTIONS] IMAGE [COMMAND][ARG...] docker run -d -it -p 8888:80 --net bridge --name tomcat01 tomcat /bin/bash # 常用参数说明 --name="Name" # 给容器指定一个名字 -d # 后台方式运行容器,并返回容器的id! -i # 以交互模式运行容器,通过和 -t 一起使用 -t # 给容器重新分配一个终端,通常和 -i 一起使用 -P # 随机端口映射(大写) -p # 指定端口映射(小写), -v #数据卷映射 -net #设置网络连接模式 一般可以有四种写法 ip:hostPort:containerPort ip::containerPort hostPort:containerPort (常用) containerPort 指定所用的shell -
启动停止容器
docker start (容器id or 容器名) # 启动容器 docker restart (容器id or 容器名) # 重启容器 docker stop (容器id or 容器名) # 停止容器 docker kill (容器id or 容器名) # 强制停止容器 docker enable (容器id or 容器名) # 开机自起 docker disbale (容器id or 容器名) # 取消开机自起 -
删除容器
docker rm 容器id # 移除容器 -
查看运行中的所有容器
docker ps -a -
查看容器日志
docker logs -f -t --tail 容器id -
进入正在运行的容器
#命令1 最后的bin/bash是指定具体的shell docker exec -it 容器id /bin/bash
3.3、备份、恢复或迁移数据卷
-
将/dbdata备份到ubuntu挂载目录/backup/backup.tar
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata # dbstore 容器名称 # /dbdata 备份的卷 # /backup/backup.tar 备份目录