Install Docker Engine on CentOS
cat /etc/redhat-release
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker -v
# 或
docker version
# 启动之前关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 启动docker服务
systemctl start docker
docker run hello-world
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
前往 容器镜像服务 (aliyun.com) 进入容器镜像服务,获取自己的容器镜像服务加速地址
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你自己的.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
拉取镜像会报错,出现此问题的原因为未进行
身份识别
,前往个人实例
中找到访问凭证
,先设置登录密码再执行命令
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
docker -v
# 或
docker version
systemctl enable docker
docker info
docker --help
docker 具体命令 --help
REPOSITORY 镜像的数据源
TAG 镜像的标签版本号
IMAGE ID 镜像ID
CREATED 镜像创建的时间
SIZE 镜像大小
docker images
-a :列出本地所有的镜像(含历史映像层)
docker images -a
-q :只显示镜像ID
docker images -q
docker search 镜像名字
# 只列举出n个镜像,默认25个
docker search 镜像名字 --limit
docker search 镜像名字 --limit n
# 查找关注度大于n的某个镜像
docker search --filter=stars=n 镜像名称
docker pull 某个镜像名字
# 拉取某个镜像最新版
docker pull 某个镜像名字 latest
# 镜像可能有多个TAG版本,拉取指定TAG版本镜像,没有就是最新版
docker pull 某个镜像名字:TAG
docker system df
docker rmi 容器Id或容器名称
# 强制删除
docker rmi -f 容器Id或容器名称
# 同时删除多个镜像
docker rmi -f 名字/ID1 名字/ID2 名字/ID3 ...
# 删除全部镜像
docker rmi -f $( docker images -qa )
–name=“容器新名字”
为容器指定一个名称;
-d
: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i
:以交互模式运行容器,通常与 -t 同时使用;
-t
:为容器重新分配一个伪输入终端,通常与 -i 同时使用;启动交互式容器(前台有伪终端,等待交互);
-P
: 随机端口映射,大写P
-p
: 指定端口映射,小写p
# 以交互模式启动容器,交互式Shell,使用/bin/bash,要退出终端直接输入 exit
docker run -it 容器名称 /bin/bash
# -docker run -it centos /bin/bash
# -docker run -it ubuntu /bin/bash
# 别名
docker run -it --name=别名 容器Id或容器名称
docker ps
# 列出当前所有正在运行的容器+历史上运行过的
docker ps -a
# 显示最近创建的容器
# 显示最近n个创建的容器
docker ps -n 个数
# 静默模式,只显示容器编号
docker ps -q
# 退出容器停止
exit
# 退出容器不停止
ctrl + P + Q
Ctrl + Shift + P + Q
docker start 容器Id或容器名称
docker restart 容器Id或容器名称
docker stop 容器Id或容器名称
docker kill 容器Id或容器名称
docker rm 容器Id或容器名称
# 同时删除多个
docker rm -f $( docker ps -a -q )
docker ps查看一下启动成功与否,有的容器后台运行必须有一个前台进程,比如
ubuntu
,要使用命令docker run -it ubuntu
,而redis
则可以直接后台运行容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就会自动退出的
docker run -d 容器Id或容器名称 [并返回容器ID]
docker logs 容器Id
# 查看redis容器日志,参数:-f 跟踪日志输出;-t 显示时间戳;--tail 仅列出最新N条容器日志;
docker logs -f -t --tail=n 容器Id或容器名称
# 查看容器从某时间后的最新n条日志。
docker logs --since="xxxx-xx-xx" --tail=n 容器Id或容器名称
# 所有
docker ps
# 指定
docker top 容器Id
docker inspect 容器Id或容器名称
# exec 是在容器中打开行的容器,可以启动新的进程,用 exit 退出不会导致容器的停止 [推荐使用]
docker exec -it 容器id /bin/bash [或 bashShell]
# attach 直接进入容器启动命令的终端,不会启动新的进程,用 exit 会导致容器的停止
docker attach 容器id /bin/bash [或 bashShell]
docker cp 容器ID:容器内路径 目的主机路径
# [root@07ea64240119] @ 后为容器ID
# 导入
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
# 导出
docker export 容器ID > 文件名.tar
docker commit提交一个新的容器副本使之成为一个新的镜像,类似于java反射
# 获取容器ID,运行 docker ps 查看容器ID
docker ps
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
# ubuntu安装vim
apt-get update
apt-get -y install vim
docker system prune
docker load -i imageName.tar