1、 安装

# 在linux中执行下面的命令就能安装
# 参考手册:https://www.runoob.com/docker/centos-docker-install.html
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2、配置开机启动

systemctl enable docker

3、建立docker组,并使用root用户

sudo groupadd docker
sudo usermod -aG docker $USER

4、docker管理基本命令

# 查看docker状态
systemctl status docker

# docker的启动、停止、重启
systemctl start | stop | restart docker

# 查看dockerxinxi
docker info

5、 配置阿里镜像加速器

# 可以登陆自己的阿里云账户搜索镜像加速器,获取自己的加速器链接,这个是免费的 
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://bb0t8muz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

辅助命令

  • docker version 查看docker的版本信息
  • docker info 用来展示docker的基本信息
  • docker --help 查看docker的所有帮助命令

操作镜像(images)的相关命令

  • docker images 查看当前仓库中的镜像列表
  • docker image //查看镜像的帮助命令
  • docker image pull 镜像名称:tag //拉取镜像
  • docker image rm 镜像名称:tag或者镜像id //删除镜像
  • https://registry.hub.docker.com/ //这个网站可以搜索镜像及查看镜像版本

启动容器

  • docker container //查看容器操作的命令参考
  • docker run -d -p 8080:8080 --name containerName 镜像id或者镜像名称:tag //运行镜像,启动容器 -d 后台运行 -p 端口映射 可以指定多个-p
  • docker container rm $(docker ps -aq) //删除所有未运行的容器
  • docker ps //查看已经运行的容器
  • docker ps -a //查看所有容器,包括正在运行的和停止的容器
  • docker container stop 容器id或者容器名称:tag //停止容器
  • docker container rm 容器id或者容器名称:tag //删除容器,只能删除已经停止运行的容器
  • docker container rm -f 容器id或者容器名称:tag //删除容器,可以删除正在运行的容器

查看容器运行日志

  • docker logs //查看容器日志
  • docker logs -f //窗口监听日志输出
  • docker logs --tail n //输出日志的最后n条

进入容器内部

  • docker exec -it 容器id或者容器名称 bash

容器和宿主机之间的文件复制

  • docker cp 文件名称或者文件目录 容器id或者容器名称:容器路径 //宿主机文件或者目录复制到容器中
  • docker cp 容器id或者容器名称:容器文件或者目录 宿主机目录路径 //容器文件或者目录复制到宿主机上

查看容器内部细节

  • docker inspect 容器id或者容器名称

数据卷(volume),实现宿主机与容器之间的文件共享

  • 数据卷可以和容器之间进行共享和重用
  • 数据卷修改会立即生效
  • 数据卷会一直存在,即使容器被删除
  • docker volueme //数据卷操作帮助
  • docker volume ls //查看数据卷列表
  • docker volume create 数据卷名称 //创建数据卷
  • docker volume prune //删除未使用的数据卷
  • docker volume inspect 数据卷名称 //查看数据卷详细信息
  • docker run -d -p 8080:8080 --name nginxServer -v 宿主机目录(绝对路径):容器目录 镜像id或者镜像名称:tag //数据卷共享方式1
  • docker run -d -p 8080:8080 --name nginxServer -v aa:容器目录 镜像id或者镜像名称:tag //数据卷共享方式2 aa代表一个数据卷名称,可以自定义任何字符,docker在不存在时自动创建这个数据卷同时自动映射宿主机中定义的目录;同时在启动容器时将aa对应的容器目录中的全部内容复制到aa映射目录中
  • docker run -d -p 8080:8080 --name nginxServer -v 宿主机目录(绝对路径):容器目录:ro 镜像id或者镜像名称:tag //指定:ro,使容器内的目录只读

将容器打包成一个镜像

  • docker commit -m “描述信息” -a “作者信息” 容器id或者容器名称 镜像名称:标签
  • docker save 镜像名称:tag -o 备份名称-tag.tar //备份镜像
  • docker load -i 备份镜像名称 //载入备份镜像

docker网络的使用,一般在使用docker网桥(bridge)实现容器与容器通信时,都是站在应用的角度进行容器通信

  • docker network //查看docker网络的操作命令
  • docker network ls //查看docker网桥列表
  • docker network create 网桥名称 //创建一个网桥
  • docker run -d -p 8080:80 --name gangan --network 网桥名称 镜像id或者镜像名称:tag //运行镜像,并指定镜像的运行的网桥(bridge),一旦在启动时指定了网桥,以后就连可以在任何这个关联的容器中使用容器名称进行与这个网桥中的其他容器进行通信
  • docker network rm 网桥名称 //删除网桥
  • docker network inspect 网桥名称 //查看网桥的使用信息

应用安装

#mysql
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v mysqlData:/var/lib/mysql  mysql:5.7.34
# 安装redis,redis在线管理软件(redisDesktopManage)
docker run --name redis -d -v redisData:/data -p 6379:6379 redis:latest redis-server --appendonly yes