Docker安装与常用命令

docker官网

安装

        卸载旧版本(如有)

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

        安装依赖和配置仓库

#安装工具
yum install -y yum-utils device-mapper-persistent-data lvm2

#配置仓库
yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum软件包索引
yum makecache fast

        安装docker

yum install  -y  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

         启动docker

systemctl start docker        #启动服务
systemctl enable docker       #设置开机自启动

docker version                #查看docker版本

配置镜像加速器

加速器地址需要从阿里云控制台获取:阿里云控制台

需要登录阿里云官网

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://umoath5o.mirror.aliyuncs.com"]
}
EOF

#重启服务
systemctl daemon-reload
systemctl restart docker

常用命令

        镜像操作

docker images     #查看所有本地的主机上的镜像
                  #    -a    列出所有镜像
                  #    -q    只显示镜像的id
                  #    -f    强制删除

docker search [镜像名]      #搜索镜像
docker pull [镜像名]        #下载镜像,默认下载最新版,也可指定版本    例如:nginx:[版本号]
docker rmi [镜像名]                  #删除镜像
docker rmi $(docker images -qa)      #删除所有镜像

docker run [镜像]        #运行镜像,创建容器,如果本地没有指定的镜像,则会自动下载指定镜像
                         #-d          后台运行
                         #--name      指定生成的容器名
                         #-p 90:80    将外部主机端口90映射到容器内nginx的80端口
#此处注意:主机端口不可重复映射,容器端口可以,因为每个容器是互相隔离的,不相关
#示例:后台运行nginx镜像,指定容器名为mynginx,并将外部主机端口90映射到容器内nginx的80端口
docker run -d --name mynginx -p 90:80 nginx

docker inspect [镜像名]        #查看镜像信息
docker save -o [保存的tar包名] [镜像名]        #将这个镜像保存为一个tar的压缩包
docker load -i [压缩包名]       #使用这个压缩包,将压缩包加载为一个镜像
                                #  -i   指定压缩包路径

docker tag [新名字]  [原镜像名字]            #修改镜像名字

        容器操作

docker ps        #查看运行中的应用容器
                 #    -a    查看所有的容器,包括停止的
 #CONTAINER ID        容器ID
 #IMAGE               运行的镜像
 #CREATED             容器创建时间
 #STATUS              容器状态
 #PORTS               占用的端口号
 #NAMES               容器名

docker stop [容器或容器ID]           #停止容器
docker kill [容器名或容器ID]         #强制停止容器
docker start [容器名或容器ID]        #启动容器
docker restart [容器名或容器ID]      #重启容器
docker stats [容器名或容器ID]        #查看容器的状态、CPU、内存、网络IO等信息
docker logs  [容器名或容器ID]        #查看容器运行日志
docker rm [容器名]                   #删除容器,删除前要先停止运行
                                    #-f      强制删除,不停止也可以删除

docker commit   [容器名或ID]    [镜像名]            #将一个容器提交为一个镜像
                                                   #  -a    指定作者
                                                   #  -m    写提交信息
                                                   #  -p    设置可以中途暂停

docker exec         #进入容器
docker exec -it [容器名或容器ID]  /bin/bash        #参数it代表以交互模式    /bin/bash代表以控制台的方式进行交互
docker cp  <源路径>  <目标路径>                   #宿主机和容器之间复制文件或目录

推送镜像

我们除了可以从镜像仓库拉取镜像之外,还可以将本地镜像推送到镜像仓库

         拉取nginx镜像

docker pull registry.cn-shenzhen.aliyuncs.com/amgs/nginx:latest

        运行镜像生成容器

docker run --name mynginx -d -p 90:80 registry.cn-shenzhen.aliyuncs.com/amgs/nginx


#这时候可以浏览器访问宿主机的ip+90端口看nginx的欢迎界面

        修改nginx的主页面

#nginx默认主页面index.html,在本地写一个index.html
cat >index.html <<EOF
<h1>Hello,JZRW<h1>
EOF

#将index.html复制到容器内
docker cp index.html  mynginx:/usr/share/nginx/html/

#这时候再刷新浏览器页面就可以看到页面修改了

        将修改的容器提交为一个新的镜像

#新的镜像名为nginx,不过版本是v1
docker commit -a jzrw -m "修改index.html" mynginx nginx:v1

       登录到镜像仓库

#推送镜像前需要先登录想要推送的镜像仓库账号,我这里是自己的阿里云镜像仓库
docker login --username=JZRW_FTX crpi-jlaq68uynffvz29r.cn-shanghai.personal.cr.aliyuncs.com

        给镜像打标签

#在推送镜像之前,需要为本地镜像打上目标仓库的标签。
#标签格式为:<your-registry-domain>/<your-namespace>/<image-name>:<tag>
docker tag nginx:v1 crpi-jlaq68uynffvz29r.cn-shanghai.personal.cr.aliyuncs.com/jzrw/nginx:v1

#如果是推送到Docker Hub,tag标签为
<Docker Hub账号用户名>/<镜像名>:<版本号>
#示例:jzrw/nginx:v1

#如果是我个人的阿里云镜像仓库,tag标签就是:
#<个人的镜像地址>/<命名空间>/<镜像名>:<版本号>
#示例:crpi-jlaq68uynffvz29r.cn-shanghai.personal.cr.aliyuncs.com/jzrw/nginx:v1

        推送

#推送镜像
docker push crpi-jlaq68uynffvz29r.cn-shanghai.personal.cr.aliyuncs.com/jzrw/nginx:v1

        验证

可以把刚刚本地的镜像删除掉,然后再从刚刚登录的镜像仓库拉取刚刚推送的镜像,运行后就可以看到自己修改的index.html页面,这里不再演示 

卸载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
rm -rf /etc/docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值