文章目录
- 一、CentOS安装docker
- 二、启动帮助类命令
- 三、镜像命令
- 1.名词概念
- 2.常用命令
- 2.1 镜像命令
- 2.2 容器命令
- 2.2.1:常用参数
- 2.2.2:常用指令
- 2.3 安装单机mysql、redis
一、CentOS安装docker
docker官网
1)yum安装gcc相关:
yum -y install gcc
yum -y install gcc-c++
2)安装软件包:
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3)更新yum软件包索引:
yum makecache fast
4)安装Docker CE:
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5) 启动docker:
systemctl start docker
6) 阿里云镜像加速器配置:
二、启动帮助类命令
- 启动docker:systemctl start docker
- 停止docker:systemctl stop docker
- 重启docker:systemctl restart docker
- 查看docker状态:systemctl status docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker总体帮助文档:docker --help
- 查看docker命令帮助文档:docker具体命令 --help
三、镜像命令
1.名词概念
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签版本号
- IMAGE ID:镜像ID
- CREATED:镜像创建的时间
- SIZE:镜像大小
2.常用命令
2.1 镜像命令
- 列出本地所有镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6.2.11 6fce9af058e8 2 weeks ago 113MB
mysql 8.0 3218b38490ce 15 months ago 516MB
registry latest b8604a3fe854 16 months ago 26.2MB
ubuntu latest ba6acccedd29 17 months ago 72.8MB
tomcat 8.0.15-jre7 8384f49437b3 8 years ago 355MB
- 只显示镜像ID:
docker images -q
6fce9af058e8
3218b38490ce
b8604a3fe854
ba6acccedd29
8384f49437b3
- 在远程库搜索镜像:docker search 镜像名称
docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 11926 [OK]
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 56
redislabs/redisinsight RedisInsight - The GUI for Redis 81
redislabs/rebloom A probablistic datatypes module for Redis 22 [OK]
redislabs/redis Clustered in-memory database engine compatib… 36
redislabs/rejson RedisJSON - Enhanced JSON data type processi… 53
redislabs/redisgraph A graph database module for Redis 26 [OK]
redislabs/redismod An automated build of redismod - latest Redi… 33 [OK]
redis/redis-stack redis-stack installs a Redis server with add… 41
redislabs/redistimeseries A time series database module for Redis 12
redis/redis-stack-server redis-stack-server installs a Redis server w… 21
- 拉取镜像:docker pull 镜像名称
docker pull redis:6.0
- 在远程库查询前n条镜像:docker search --limit n 镜像名称
docker search --limit 5 redis
- 删除镜像:docker rmi 镜像名称(镜像ID)
docker rmi redis:6.0
docker rmi 6fce9af058e8
- 强制删除镜像:docker rmi -f 镜像ID
docker rmi -f 6fce9af058e8
- 删除全部镜像(慎重):docker rmi -f $(docker images -qa)
docker rmi -f $(docker images -qa)
docker虚悬镜像:仓库名、标签都是none的镜像,俗称虚悬镜像dangling inamge
2.2 容器命令
2.2.1:常用参数
–name=“容器新名字” 为容器指定一个名称
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i: 以交互模式运行容器,通常与-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
退出 exit
2.2.2:常用指令
- 新建并启动容器:
交互式容器:
docker run -it --name=myu1 ubuntu /bin/bash
守护式容器:
docker run -d redis
- 列出当前所有正在运行的容器:
docker ps
- 退出容器:
exit
ctrl+p+q
两者区别:exit容器停止,ctrl+p+q容器不停止
- 启动已经停止的容器:docker start 容器ID或容器名
docker start redis
- 重启容器:docker restart 容器ID或容器名
docker restart redis
- 停止容器:
docker stop redis
- 强制停止容器:
docker kill redis
- 删除已经停止的容器:docker rm 容器ID或容器名
docker rm redis
- 查看容器日志:docker logs 容器ID
docker logs c632a8676b73
- 查看容器内运行进程:docker top 容器ID
docker top c632a8676b73
- 查看容器内部细节:docker inspect 容器ID
docker inspect c632a8676b73
- 进入正在运行的容器并以命令行交互:
docker exec -it c632a8676b73 /bin/bash
docker attach c632a8676b73
两者区别:attach直接进入容器启动命令终端,不会启动新的进程,用exit退出,会导致容器停止。 exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器停止
- 从容器内拷贝文件到主机上:docker cp 容器ID:容器内路径 目的主机路径
docker cp f400fb93b8da:/tmp/a.txt /root
- 导入和导出容器:
docker export 容器ID > name.tar
cat name.tar | docker import - 镜像用户/镜像名:镜像版本号
- 搭建docker本地库
docker pull registry
vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.80.10:5000"], #添加此段,“,”不可少,ip是本机IP地址
"registry-mirrors": ["https://ox6a5bka.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker.service
docker create -it registry /bin/bash
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
'//-p指定端口,一内一外;-v表示挂载,前者是宿主机,后者是容器'
- commit命令生成新的镜像:
docker commit -m="安装了vim" -a="zhang" f400fb93b8da vimubuntu
- 将镜像推到本地库:
curl -XGET http://xxx.xxx.xx.xx:5000/v2/_catalog
docker pull xxx.xxx.xx.xx:5000/ipconfigubuntu:1.2
- 容器数据卷:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /www/local_data:/tmp/docker_data:rw(ro) --name=u1 ubuntu 读写或只读
2.3 安装单机mysql、redis
docker pull mysql:8.0
docker run -d -p 3306:3306 --privileged=true -v /www/mysql/log:/var/log/mysql -v /www/mysql/data:/var/lib/mysql -v /www/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Zhang0727 --name mysql8 mysql:8.0.15
docker pull redis:6.0
docker run -p 6379:6379 --name=redis6 --privileged=true -v /www/redis/redis.conf:/etc/redis/redis.conf -v /www/redis/data:/data -d redis:6.2.11 redis-server /etc/redis/redis.conf