docker安装及命令使用

本文介绍了Docker的版本类型,如CE和EE,并详细讲解了如何创建Docker存储库,通过yum安装Docker软件包,以及配置阿里云镜像加速器。此外,还涵盖了Docker命令补全、镜像管理(包括列出、搜索、下载、查看、删除、导出和导入)和容器管理(包括启动、查看信息、创建、停止、删除、日志查询等)的操作。最后,展示了通过Docker部署Nginxweb应用的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. Docker版本介绍

2. 创建Docker存储库

3. 安装docker软件包

4. Docker命令补全

6.Docker命令介绍

7. Docker镜像管理

7.1 列出本地镜像

7.2 搜索镜像

7.3 下载镜像

7.4 查看镜像

7.5 删除镜像

7.6 导出镜像

7.7 导入镜像

7.8 镜像改名

8. 容器管理

8.1 容器的命令

​​​​​​8.2 ​启动一个容器

8.3 查看容器信息

8.4 创建容器并放入后台运行

8.5 查看容器元数据信息

8.6 进入容器

​​​​​​​8.7 停止容器

​​​​​​​8.8 启动被停止的容器

​​​​​​​8.9 删除容器

​​​​​​​8.10 查询docker容器日志

​​​​​​​8.11 用于容器与主机之间的数据拷贝

​​​​​​​8.12 docker容器的网络访问(端口映射)

​​​​​​​8.13  案例演示


1. Docker版本介绍

Docker 从 17.03 版本之后分为:

CE(Community Edition: 社区版) 功能有限,没有官方技术支持服务。

EE(Enterprise Edition: 企业版)功能全面,提供官方技术支持服务。

docker架构

docker是传统的c/s架构, 客户端和服务端 ,由dockerclinet和dockerserver端组成

2. 创建Docker存储库

以下安装是服务器可以联网环境下进行安装的,如果是在公司内部,一般公司内部服务器是不允许联网操作的,那就需要离线进行安装了,

离线的安装可以参考官方文档或者参考我的上一篇文档 docker离线部署:跳转按钮

官方安装文档:Install Docker Engine on CentOS

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,方便您可以从仓库安装和更新

[root@localhost ~]# yum install -y yum-utils

Docker:使用以下命令来设置稳定的仓库(阿里仓库)

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo

3. 安装docker软件包

1). yum源安装

配置yum源

yum install -y yum-utils device-mapper-persistent-data lvm2    #yum管理工具
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #添加阿里源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo        #添加官方源

 列出docker-ce可安装的版本

yum list docker-ce --showduplicates | sort -r
yum install docker-ce-19.03.9-3.el7    #安装1903版本
systemctl start docker	#启动docker
systemctl enable docker  #加入开机自启动

docker info	#显示 Docker 系统信息,包括镜像和容器数

#查看docker版本信息

[root@localhost ~]# docker --version
Docker version 19.03.9, build 9d988398e7

#参看docker详细版本

[root@localhost ~]# docker version


yum remove docker-ce  #卸载Docker方式,删除安装包

rm -rf /var/lib/docker  #删除镜像、容器、配置文件等内容:

2) 本地rpm包安装

下载地址https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

注:如果安装的是17版本要下载docker-ce-selinux下载

4. Docker命令补全

 Docker 已经安装好了,但是使用 docker 命令时 不能自动补齐,即输入 docker 命令后,按 Tab 键无法列出子命令(或参数)的候选项

yum install -y bash-completion
自动补全:
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/completions/docker

[root@docker ~]# docker  #Tab 就出来很多命令了

5. 配置镜像加速器

默认情况下镜像从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速器进行下载。

国内镜像加速器有阿里云、网易云、腾讯云、中科大等,本实验配置阿里云镜像加速器,速度较快

配置docker镜像加速器可以加速在国内下载docker官方镜像的速度,国内有不少机构提供了免费的加速器供大家使用:修改守护进程daemon的配置文件,默认通过此修改下载镜像

1、Docker官方的中国镜像加速器:https://registry.docker-cn.com  不用注册

2、中科大的镜像加速器:https://docker.mirrors.ustc.edu.cn/   不用注册

3、阿里云的镜像加速器:登录阿里云的容器hub服务,镜像加速器那一栏里会为你独立分配一个加速器地址 要注册

4、DaoCloud的镜像加速器:登录DaoCloud的加速器获取脚本,该脚本可以将加速器添加到守护进程的配置文件中 要注册

我用的是阿里云的镜像加速器,阿里云为我独立分配的加速器地址是:https://4wgtxa6q.mirror.aliyuncs.com

我们以阿里镜像加速器为例进行配置:

每个阿里云帐号都有一个独立的镜像加速地址,我们直接就可以进行使用,先登录阿里云,点击控制台找到镜像服务

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yecrjvhh.mirror.aliyuncs.com"]
}
EOF


sudo systemctl daemon-reload  #加载配置文件
sudo systemctl restart docker #重启docker服务

6.Docker命令介绍

查看docker可用命令:
[root@localhost ~]# docker

Docker命令根据Docker官方案例分为以下几种:
Docker环境信息: docker [info|version]
容器生命周期管理:docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause]
容器操作命令: docker [ps|inspect|top|attach|wait|export|port|rename|stat]
容器rootfs命令: docker [commit|cp|diff]
镜像仓库命令: docker [login|pull|push|search]
本地镜像管理: docker [build|images|rmi|tag|save|import|load]
容器资源管理: docker [volume|network]
系统日志信息: docker [events|history|logs]

7. Docker镜像管理

docker image 获取镜像管理命令

命令

作用

docker images

列出本地镜像

docker search 镜像名

搜索镜像

docker pull 镜像名:版本

拉取镜像

docker rmi 镜像名:版本

删除镜像

7.1 列出本地镜像

列出本地镜像:docker images

常用选项:

-a :列出本地所有的镜像

-q :只显示镜像ID

[root@localhost ~]# docker images

 输出详情介绍:

REPOSITORY 镜像仓库源

TAG 镜像的标签

IMAGE ID 镜像的ID

CREATED 镜像创建时间

SIZE 镜像大小

7.2 搜索镜像

搜索镜像:docker search

常用选项:

--no-trunc :显示完整的镜像描述

[root@localhost ~]# docker search centos

 

 输出详情介绍:

NAME 镜像仓库源的名称

DESCRIPTION 镜像的描述

STARS 点赞数量,表示喜欢的意思

OFFICIAL 是否 docker 官方发布

AUTOMATED 自动构建(表示个人发布)

注意:只有一个名称,没有/分割代表他是官方镜像,选择镜像建议:1.官方2.stars数量多

官网仓库hub.docker.com

7.3 下载镜像

docker pull 镜像名
[root@localhost ~]# docker pull centos:7

7.4 查看镜像

docker images 
[root@localhost ~]# docker images

7.5 删除镜像

docker rmi 
[root@localhost ~]# docker rmi centos:7
[root@localhost ~]# docker rmi 50fe74b50e0d

提示:删除镜像可以根据镜像名称或者ID删除,如果删除的时候不加版本号,会删除laste最新版本

[root@localhost ~]# docker rmi `docker images -q`

删除所有镜像:

如需删除所有镜像可以配合docker images -q获取所有镜像ID在进行删除

7.6 导出镜像

docker save
docker image save > /opt/nginx.tar.gz nginx    #根据容器 ID 将镜像导出成一个文件
docker image save -o /opt/nginx.tar.gz nginx   #可以吧多个镜像 打包成tar.gz 导出到opt目录下

7.7 导入镜像

docker load 
docker image load -I /opt/nginx.tar.gz 从tar包载入镜像
docker image load < /opt/nginx.tar.gz

​​​​​​​7.8 镜像改名

docker image tag 镜像名:镜像版本   新镜像名:新镜像版本
[root@localhost ~]# docker image tag centos:7 centos_bak:7-1

 修改镜像名称之后,发现原有的还是存在的,两个服务是一样的,如果删除原有的镜像不影响新的镜像使用

 根据镜像ID变更镜像名和版本

# 为刚导入的镜像打新标签(假设导入的镜像ID为<IMAGE_ID>)
docker tag <IMAGE_ID> newimage:v1.0

8. 容器管理

​​​​​​​8.1 容器的命令

命令

作用

docker ps

查看正在运行容器

docker ps -a

查看所有容器

docker run 参数

创建容器

docker exec 容器ID/容器名

进入容器

docker stop 容器名/容器ID

停止容器

docker rm 容器名/容器ID

删除容器

docker start 容器名/容器ID

启动被停止的容器

docker restart 容器名/容器ID

重启容器

docker kill 容器名/容器ID

强制停止正在运行的容器(一般不用,除非卡了)

docker inspect 容器名称

查看容器元数据信息

--restart=always

启动容器时设置容器随机自启

docker update --restart=always 容器名/容器ID

容器启动后设置容器随机自启

docker logs 容器名/容器ID

查看容器日志信息

创建容器:docker run

常用选项:

·-it :为容器分配一个输入终端

·--name="名称" :为容器指定一个名称

·/bin/bash :在容器内执行bash命令

·exit :退出容器

·-id :后台运行容器,并返回容器ID

·-P :随机端口映射,容器内部端口随机映射到主机的端口

·-p :指定端口映射,格式为:主机(宿主)端口:容器端口

·--dns 8.8.8.8 :指定容器使用的DNS服务器,默认和宿主一致

·-h "名称" :指定容器的hostname

·-e username="ritchie" :设置环境变量

·-m :设置容器使用内存最大值

·--net="bridge" :指定容器的网络连接类型,支持bridge/host/none/container: 四种类型

·--link=[] :添加链接到另一个容器

·--expose=[]: 开放一个端口或一组端口

·--volume , -v :绑定一个数据卷

​​​​​​8.2 ​启动一个容器

创建容器:docker run 参数
[root@localhost ~]# docker run -it --name=cos1 centos:7 /bin/bash  #启动一个名为cos1的容器,并进入容器终端执行 /bin/bash命令

-it :为容器分配一个输入终端

--name="名称" :为容器指定一个名称

/bin/bash :在容器内执行bash命令

​​​​​​​8.3 查看容器信息

[root@localhost ~]# docker ps 通过-it创建的容器退出后自动关闭
[root@localhost ~]# docker ps -a 查看所有容器,包括未运行的
[root@localhost ~]# docker container ls -a
[root@localhost ~]# docker ps -a --no-trunc

-a 显示所有

-q只显示id,通常情况下在批量删除时候使用

-l  只显示最新创建的容器

--no-trunc长格式显示所有信息

查看容器元数据信息
[root@localhost ~]# docker inspect cos1

查看容器中的IP
[root@localhost ~]# hostname -I

 容器和容器之间是可以ping通的,容器和宿主机之间也是可以ping通的

​​​​​​​8.4 创建容器并放入后台运行

[root@localhost ~]# docker run -id --name=cos3 centos:7

-id :后台运行容器,并返回容器ID,放入后台运行的容器退出后不会自动关闭

​​​​​​​8.5 查看容器元数据信息

[root@localhost ~]# docker inspect cos2

​​​​​​​8.6 进入容器

docker exec -it 容器ID/容器名

[root@localhost ~]# docker exec -it cos3 /bin/bash

exit  #退出容器

​​​​​​​8.7 停止容器

docker stop 容器名/容器ID

[root@localhost ~]# docker stop cos3

​​​​​​​8.8 启动被停止的容器

docker start 容器名/容器ID

[root@localhost ~]# docker start cos3

启动被停止的所有容器:ps -aq 获取所有容器ID

[root@localhost ~]# docker start `docker ps -aq`

​​​​​​​8.9 删除容器

docker rm 容器名/容器ID

常用选项: -f 强制删除(无需停止容器)

[root@localhost ~]# docker rm cos2

删除所有容器:

ps -aq 获取所有容器ID

[root@localhost ~]# docker rm -f `docker ps -a -q`		#删除所有的容器

​​​​​​​8.10 查询docker容器日志

docker logs 容器名   查看容器日志

​​​​​​​8.11 用于容器与主机之间的数据拷贝

格式1:docker cp 容器名:目录/文件 宿主机目录 #将容器中文件或目录拷贝到宿主机

格式2:docker cp 宿主机目录/文件 容器名:目录 #将宿主机文件/目录拷贝到容器中

​​​​​​​8.12 docker容器的网络访问(端口映射)

[root@localhost ~]# docker run --name nginx -d -p 8080:80 nginx:1.20.2

 -p hostPort:containerPort 宿主机端口映射到容器端口(常用)

[root@localhost ~]# docker run --name nginx -d -p 8080:80 nginx:1.20.2

-p ip:hostPort:containerPort 指定宿主机IP映射容器端口(常用)

[root@localhost ~]# docker run --name nginx -d -p 192.168.1.199:8080:80 nginx:1.20.2

-P指定监听所有IP的随机端口映射到容器的端口    随机端口是有端口池取的

[root@localhost ~]# docker run --name nginx -d -P nginx:1.20.2

-p ip::configtainerPort    随机生成一个宿主机端口,生成之后端口就不会变了

[root@localhost ~]# docker run --name nginx -d -p 192.168.1.199::80 nginx:1.20.2

​​​​​​​8.13  案例演示

通过Docker部署Nginx的web应用并实现浏览器访问

1)下载nginx镜像

[root@localhost ~]# docker pull nginx:1.20.2

2)创建容器并实现端口映射(默认容器无法被外网访问)

[root@localhost ~]# docker run -d --name=nginx-web --restart=always -p 80:80 nginx:1.20.2

-P :随机端口映射,容器内部端口随机映射到主机的端口

-p :指定端口映射,格式为:宿主机端口:容器端口

--restart=always #容器退出后,自动启动容器(一直)

3)拷贝项目到Nginx的网页目录

 docker cp 用于容器与主机之间的数据拷贝

格式1:docker cp 容器名:目录/文件 宿主机目录 #将容器中文件或目录拷贝到宿主机

格式2:docker cp 宿主机目录/文件 容器名:目录 #将宿主机文件/目录拷贝到容器中

4)先创建一个页面

[root@localhost ~]# vim index.html
Hello Word

5)将转页面拷贝到容器中

[root@localhost ~]# docker cp /root/index.html nginx-web:/usr/share/nginx/html

6)进入容器验证

[root@localhost ~]# docker exec -it nginx-web /bin/bash
[root@b35e35bf1ca9:/# cd /usr/share/nginx/html/

7)浏览器访问

http://192.168.1.199:80

Hello Word

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被生活耽误的旅行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值