docker基础命令使用
一,docker安装
centos 系统安装docker
-
centos7及以上版本 (为什么用centos呢,centos稳定性最好,是云计算最常用的linux系统,建议使用centos系统)
-
先检查是否已安装,卸载旧版本(新装系统可略过此步骤)
$ yum list installed | grep docker containerd.io.x86_64 1.2.13-3.2.el7 @docker-ce-stable docker-ce.x86_64 3:19.03.9-3.el7 @docker-ce-stable docker-ce-cli.x86_64 1:19.03.9-3.el7 @docker-ce-stable # yum 删除 已安装的docker $sudo yum remove docker-ce.x86_64 \ docker-ce-cli.x86_64 \ containerd.io.x86_64 #提示 complete!卸载成功 #进一步验证卸载成功 yum list installed |grep docker #没有docker相关程序 说明卸载成功
-
安装前置软件并设置仓库
#安装yum-utils, device-mapper-persistent-data , lvm2三个软件
yum-utils – 提供yum-config-manager
device-mapper-persistent-data , lvm2 — device mapper存储驱动所需$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
设置稳定的仓库
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
安装docker engine-community
- 安装最新版本
$ sudo yum install -y docker-ce docker-ce-cli containerd.io
- 安装制定版本
1)先列出docker-ce docker-ce-cli 可用版本
$yum list docker-ce --showduplicates docker-ce.x86_64 3:19.03.9-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable $yum list docker-ce-cli --showduplicates docker-ce-cli.x86_64 1:19.03.9-3.el7 docker-ce-stable docker-ce-cli.x86_64 1:19.03.8-3.el7 docker-ce-stable docker-ce-cli.x86_64 1:19.03.7-3.el7 docker-ce-stable
- 使用制定版本安装
$sudo yum install docker-ce.x86_64-docker-ce.x86_64 docker-ce-cli.x86_64-1:19.03.9-3.el7 containerd.io
- 查看docker是否安装成功
$ yum list installed |grep docker containerd.io.x86_64 1.2.13-3.2.el7 @docker-ce-stable docker-ce.x86_64 3:19.03.10-3.el7 @docker-ce-stable docker-ce-cli.x86_64 1:19.03.10-3.el7 @docker-ce-stable #说明安装成功
-
启动docker
sudo systemctl start docker
查看docker 进程是否启动
systemctl status docker #如下表示运行docker正常
二,docker镜像仓库设置
-
在 /etc/docker/ 路径下,vi/vim修改daemon.json (如果没有则使用touch命令增加文件)
"registry-mirrors":["https://registry.docker-cn.com"]
参考:常见docker镜像仓库
https://hub.docker.com/ # (默认镜像仓库)
https://registry.docker-cn.com/ (docker 中国仓库)
https://c.163yun.com/hub#/m/home/ 国内163镜像仓库(需登录)
https://registry.cn-shanghai.aliyuncs.com 阿里云-上海镜像仓库(需登录)
- 重新读取 daemon配置, 修改后重启docker 服务
systemctl daemon-reload
systemctl restart docker
- 查看镜像仓库设置是否生效
docker info
三,docker 镜像相关命令
以tomcat 的 docker 镜像为例
-
镜像仓库登录/退出
docker login -u aaaaa -p bbbbb # 以用户名aaaaa密码bbbbb登录本地镜像仓库 #非必须,一般私有仓库需登录,如阿里云,163等,公共仓库不必登录,如:https://hub.docker.com/ 或 https://registry.docker-cn.com/ docker logout #退出镜像仓库登录
-
镜像搜索
docker search tomcat #从镜像仓库中搜索 tomcat 镜像
-
下载镜像
- 下载最新镜像
docker pull tomcat #从镜像仓库下载镜像到本地
- 下载指定镜像
docker pull tomcat:V1 # 以v1版本为例 (示例)从镜像仓库下载版本为v1的镜像到本地
-
查看本地docker 镜像
docker images #列出本地所有镜像
-
docker 镜像保存并下载到本地
docker save -o tomcat.tar tomcat:latest #将镜像文件保存为.tar 格式,可下载到本地或传输到其他环境
sz tomcat.tar #下载到windows本地,(需提前yum安装lrzsz)
-
docker 镜像上传并导入本地
rz tomcat.tar #上传到centos系统 docker load -i tomcat.tar# 将 .tar导入为docker镜像 docker images #查看镜像
-
docker 镜像打tag
docker tag hello-world:v1 hello-world:latest #复制hello-world 并重新打上v1版本标签,并不会删除latest的版本
-
docker 本地镜像上传到镜像仓库
docker push hello-world:v1 #本地仓库上传到镜像仓库
-
docker 镜像删除
docker rmi -f hello-world:v1 #强制删除 hello-world v1版本的镜像
四,docker镜像运行
docker run / docker creat
docker run 和 docker creat的区别:
docker run : 创建容器并启动
docker creat:创建容器不启动
格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker cerat [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的高端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=“nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=“ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- **-m : **设置容器使用内存最大值;
- –net = “bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –expose= []: 开放一个端口或一组端口;
- –volume , -v: 绑定一个卷
举例
docker run -p 127.0.0.1:8080:80 -v /etc/:/etc --name tomcat-run -it tomcat:latest /bin/bash
# 映射容器端口80到主机8080;
# 映射容器文件目录/etc 到主机的/etc
# 给容器命名为 tomcat-test
# 容器运行 bash 命令
# 容器运行的镜像为 tomcat:latest
docker creat -p 127.0.0.1:8080:80 -v /etc/:/etc --name tomcat-creat tomcat:latest
# 映射容器端口80到主机8080;
# 映射容器文件目录/etc 到主机的/etc
# 给容器命名为 tomcat-creat
docker exec
格式:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
常用参数:
- -d : 分离模式: 在后台运行
- -i : 即使没有附加也保持STDIN 打开
- -t : 分配一个伪终端
举例
docker exec -ti tomcat:latest /bin/bash # 进入容器 /bin/bash 交互模式
docker exec -ti tomcat:latest /bin/bash /etc/test.sh 进入容器/bin/bash模式,执行test.sh脚本