#删除原有docker包
yum remove docker*
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#ce是社区版 cli是命令行工具
sudo yum install -y docker-ce docker-ce-cli containerd.io
#以下是在安装k8s的时候使用的版本(后续k8s系列再用)
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
#配置开机启动,并且现在就启动
systemctl enable docker --now
获取阿里云镜像加速地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mzlfopuy.mirror.aliyuncs.com"]
}
EOF
#硬盘中docker内容发生改变 需要守护进程先reload再启动
sudo systemctl daemon-reload
sudo systemctl restart docker
解决方案:严格按照阿里云提供的加速配置来设置daemon.json
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Sat 2022-07-09 20:49:20 CST; 6s ago
Docs: https://docs.docker.com
Process: 2030 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 2030 (code=exited, status=1/FAILURE)
#原因:上一次docker未正常退出
#解决方案:
#退出docker
systemctl stop docker.socket
#重启docker
sudo systemctl restart docker
官网地址:https://hub.docker.com/
#复制docker命令即可(直接拉取默认下载最新的tag包)
docker pull openresty/openresty
#指定版本号下载 :version
docker pull openresty/openresty:1.21.4.1-2-alpine-fat
#查看本地下载了哪些镜像
docker images
#本地删除镜像
docker rmi nginx (docker rmi nginx:latest)
docker rmi 镜像名:版本号/镜像id
#docker 常用的命令
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run 设置项 镜像名
[OPTIONS]
#设置docker启动的容器名称 --name=xxx
docker run --name=myname(容器名) 镜像名
#-d后台运行
docker run -d --name=nginx1 openresty
#--restart服务器重启后应用的启动规则(默认no不启动)
# --restart=always 开机自启动
docker run --restart -d --name=myname(容器名) 镜像名
#做主机端口到容器端口的映射(前面是主机端口,后面是容器80端口)
docker run -p 88:80 --restart -d --name=myname(容器名) 镜像名
#查看正在运行中的容器
docker ps
#查看历史运行的容器
docker ps -a
#删除已经停止的容器
docker rm c83b66687432(id)/nginx1(name)
#强制删除正在运行的容器
docker rm -f c83b66687432(id)/nginx1(name)
#停止容器
docker stop c83b66687432(id)
#再次启动容器
docker start 容器id/name
#更新容器配置
docker update 容器id/name --restart=always
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id /bin/bash
#openresty的安装目录 -> /usr/local/openresty
修改nginx配置即可
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
#-a作者信息 -m message消息 容器id
docker commit -a "leifengyang" -m "首页变化" 341d81f7504f 自定义镜像名:v1.0
[root@worker1 ~]# docker commit -a "zk" -m "修改首页" nginx1 changetest:v0.1
sha256:7f9e948dcb972c9786f542f5e063d3ebeb77328e938fe2d655f3e383b05c0587
#保存后重新启动
[root@worker1 ~]# docker run -d --name=nginx1 -p 88:80 changetest:v0.1
49cb611a5bb927e1021b79469144ecfcf7d3f5c72acbe773786e50a2eb132564
# 将镜像保存成压缩包(192.168.149.128)
docker save -o testTar.tar guignginx:v1.0
#将tar包传输到其他机器(直接拷贝到其他机器上)
scp testTar.tar [email protected]:/opt/huawei/openresty
# 别的机器加载这个镜像
docker load -i abc.tar
# 拷贝后离线安装即可
本地打成tar包并传输
异地加载tar包并运行
其他服务器访问的效果(虽然内容与上面相同,但主机ip不同)
#本地先打tag包
#local-image本地的容器名 changetest:v0.1 远程仓名称 zwx883031/openresty_zk_test:v1.0
docker tag local-image:tagname new-repo:tagname
#完整的命令
docker tag changetest:v0.1 zwx883031/openresty_zk_test:v1.0
#本地登录hub.docker账号
docker login
#推送到远程仓
docker push zwx883031/openresty_zk_test:v1.0
#退出账号
docker logout
docker pull zwx883031/openresty_zk_test:v1.0
docker logs 容器名/id 排错
docker exec -it 容器id /bin/bash
# docker 经常修改nginx配置文件
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx-02 \
nginx
#把容器指定位置的东西复制出来
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf