docker安装
https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b11SQi9ZV
镜像加速器配置,在阿里云控制台中的容器镜像服务进行配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
同时可以在内部配置自己的公开仓库
创建个人实例——创建命名空间——创建镜像仓库
docker指令
服务与帮助类命令
启动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
docker常用命令
查看镜像/容器/数据卷所占的空间
docker system df
docker镜像命令
列出本地主机上的镜像
docker images [OPTIONS]
-a :列出本地所有的镜像(含历史映像层)
-q :只显示镜像ID
查询dockerHub上的镜像
docker search [OPTIONS] 镜像名字
--limit : 只列出N个镜像,默认25个
下载镜像
docker pull 镜像名字[:TAG]
不选取TAG版本号就默认是latest
删除镜像
docker rmi [OPTIONS] 某个XXX镜像名字或ID
-f :强制删除
提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
提交镜像至阿里云仓库 #在阿里云控制台中有例子
docker login --username=阿里云账户 registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
docker容器命令
新建+启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name="容器新名字" :为容器指定一个名称
--privileged=true :给容器当前用户权限,防止容器数据卷的挂载目录没有权限
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i:以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用,也即启动交互式容器(前台有伪终端,等待交互)
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
-v: /宿主机绝对路径目录:/容器内目录[:rw/ro] 默认rw
-e: 指定容器运行的环境变量
[ARG...]运行容器时的一些参数
列出当前所有正在运行的容器
docker ps [OPTIONS]
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器
-n:显示最近n个创建的容器
-q :静默模式,只显示容器编号
交互式容器进去后退出的方式
exit
run进去容器,exit退出,容器停止
ctrl+p+q
run进去容器,ctrl+p+q退出,容器不停止
启动已停止运行的容器
docker start 容器ID或者容器名
重启容器
docker restart 容器ID或者容器名
停止容器
docker stop 容器ID或者容器名
强制停止容器
docker kill 容器ID或容器名
删除已停止的容器
docker rm 容器ID
查看容器日志
docker logs 容器ID
查看容器内运行的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
进入正在运行的容器并以命令行交互
docker exec -it 容器ID /bin/bash
docker attach 容器ID
attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止
exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止
从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
导入和导出容器
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
docker安装常用软件
mysql
docker pull mysql:8.0
docker run -d -p 3306:3306 --privileged=true
-v /zzyyuse/mysql/log:/var/log/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name mysql
mysql:8.0
redis
docker pull redis:6.0.8
docker run -p 6379:6379
--name myr3
--privileged=true
-v /app/redis/redis.conf:/etc/redis/redis.conf
-v /app/redis/data:/data
-d
redis:6.0.8
redis-server /etc/redis/redis.conf #按照指定的conf文件启动redis服务