一.环境准备

1.系统介绍

系统:centos7.9

内核版本:3.10.0-1160

2.yum更新(不是必须的,后面出现不兼容的情况再update

yum -y update      #升级所有包同时也升级软件和系统内核; 
yum -y upgrade #只升级所有包,不升级软件和系统内核

3.卸载之前的残留

yum remove docker  docker-common docker-selinux docker-engine

二.安装docker服务

yum install -y yum-utils device-mapper-persistent-data lvm2
###################设置docker仓库,下面中央仓库和阿里仓库任选一个######################
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r #查看可用的版本
yum -y install docker-ce
docker -v #查看docker版本
systemctl start docker
systemctl enable docker

三.docker服务常用命令

1.镜像相关命令

1)docter pull NAME[:TAG] 使用pull命令从docker hub仓库下载镜像到本地
2)docker tag oldName newName 为本地镜像添加新的标签
3)docker images 列出本地主机上已有的镜像
4)docker search TERM 默认搜索docker hub官方仓库的镜像
5)docker rmi 镜像id或者镜像名称 //删除镜像
6)docker commit [OPTIONS] CONTAINER[REPOSITORY[:TAG]] 基于已有镜像的容器创建镜像,可以创建比较复杂的镜像。-a:作者信息,-m:提交信息,-p:提交时暂停容器运行
7)docker import -NAME[:TAG] 基于本地模板导入镜像
8)docker build -t NAME[:TAG] dockerfile路径 基于dockerfile创建
9)docker save –o xxx.tar NAME[:TAG] 存出镜像到本地文件
10) docker load <xxxx.tar 载入镜像
11)docker inspect 镜像id 查看镜像详细信息

2.容器相关命令

1)docker create -it NAME[:TAG] 创建容器
2)docker start NAME[:TAG] 启动容器
3)docker run -it NAME[:TAG] 等于先执行docker create命令,再执行docker start,-it交互式,守护态运行,通过run后加-d实现
4)docker stop[-t|-time[=10]] 终止容器
5)docker restart NAME[:TAG] 启动状态重新启动
6)docker ps -a -q 查看处于终止的容器id信
7)docker ps 查看正在运行的容器
8)docker ps -a 查看所有容器
9)docker rm 容器id 删除容器,需要先停止
10)docker logs 容器id 查看容器日志
11)docker port 端口 查看容器映射端口
12)docker inspect 容器id 查看容器信息
13)docker exec -u root -it containerID /bin/bash 指定用户进入容器操作
14)env 容器内部输入env查看容器内部环境变量
15)docker cp container-id : 复制本地文件到容器
16)docker cp container-id: 复制容器文件到本地
17)docker network create app_net 创建自定义网络
18)docker network connect app_net container-name连接网络
19)docker run -it -v /dbdata —name dbdata 创建数据卷容器dbdata,并在其中创建数据卷挂载到/dbdata
20)docker run --restart=always #每次docker服务重启后容器也自动重启

3.修改容器的端口映射配置文件

docker run -itd -p 宿主机IP:宿主机端口:容器端口 --name=容器名 镜像名 /bin/bash
docker run -itd -p 0.0.0.0:80:80 --name=centos7 xrspark/centos7-base /bin/bash
docker ps -a #查看容器id
docker stop xxx
vim /var/lib/docker/containers/{container_id}/hostconfig.json
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"//宿主机ip
}
]


systemctl restart docker

四.docker服务常见问题

1.启动服务报错:Failed to get D-Bus connection: Operation not permitted

docker ps    #查看当前容器
docker stop 5a2628d84d31
docker rm 5a2628d84d31
docker run -itd -p 0.0.0.0:80:80 --name=centos7 --privileged=true xrspark/centos7-base /usr/sbin/init
--privileged=true #以特权模式运行
-p 0.0.0.0:80:80 #端口映射(宿主机IP:宿主机端口:容器端口)
docker exec -it centos7 /bin/bash

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ede1d48ba7d xrspark/centos7-base "/usr/sbin/init" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp centos7

​​