从入门到入土 01 .net 容器化01-容器安装

windows下
我在win下安装docker是使用vs2019版本运行的时候 用docker运行。 然后他自动为我安装了docker-client,然后右下角会多一个docker的logo点击或者双击就可以用啦。
在这里插入图片描述
还可以直接到docker的官网上去下载docker文件安装
docker.com

中文的一些参考网站 :http://www.dockerchina.cn

下面为 linux下安装 :
#在root 用户下
#第一步 卸载旧的安装包

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

#第二步 安装需要的安装包

yum install -y yum-utils
sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

#第三步 设置镜像的仓库

 yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

–默认是国外的
#如果没有vpn 建议安装阿里云的


sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

上面的不成功可以使用下面这两个先把docker的安装包安装一下 ,(去除最后的文件路径可以查看这连接里面的文件列表)

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

然后执行安装和启动

sudo yum install docker-ce
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world

#更新yum 索引安装包

yum makecache fast 
或者yum makecache

安装的时候有时候会遇到下面这个问题。需要卸载 重新安装 请看这个连接 我从网上搜到的
:https://blog.csdn.net/klo220/article/details/114276148
在这里插入图片描述

安装docker相关的

 yum install docker-ce docker-ce-cli containerd.io (可能会出错,多试几次)
 有时候docker和别的软件 会有冲突 比如 podman  buildah , 如果跟这些软件有冲突那么就得把这俩卸载了。
 1. 查看是否安装 Podman
	{
		rpm -q podman
		podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64
		2. 删除Podman 
		dnf remove podman
	}
 #启动docker 服务
 systemctl start docker
 #查看docker 是否安装完成
 docker --version
 #通过hello world 来验证
 docker run hello-world
#查看所有的docker 镜像
 docker images

Docker 卸载

卸载依赖

yum remove docker-ce docker-ce-cli containerd.io

删除资源

rm -rf /var/lib/docker

docker相关指令
docker基本命令:

然docker启动后容器也自启动,代码如下:
docker container update --restart=always 容器名字
进入容器内部
docker exec -it 容器 /bin/bash 去编辑 ngnix.conf 配置文件。
设置docker 开机自动启动 :systemctl enable docker

查看所有镜像 docker images

删除镜像(会提示先停止使用中的容器) docker rmi 镜像name/镜像id

查看所有容器 docker ps -a

查看容器运行日志 docker logs 容器名称/容器id

停止容器运行 docker stop 容器name/容器id

终止容器后运行 docker start 容器name/容器id

容器重启 docker restart 容器name/容器id

删除容器 docker rm -f 容器name/容器id

#删除镜像
docker rmi -f 镜像id (可以根据 docker images 查询)
docker rmi -f $(docker images) --删除所有镜像
#查询docker 的详细信息
docker stats dockerid

二、停止一个正在运行的容器
1、docker stop 此方式常常被翻译为优雅的停止容器

docker stop 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker stop -t=60 容器ID或容器名

2、docker kill

docker kill 容器ID或容器名 :直接关闭容器

由此可见stop和kill的主要区别:stop给与一定的关闭时间交由容器自己保存状态,kill直接关闭容器
想更进一步了解处理机制的可以看下面这篇文章,比较详细但是需要其他方面的

1.停用全部运行中的容器:
docker stop $(docker ps -q)

2.删除全部容器:
docker rm $(docker ps -aq)

3.一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

运行.net 代码使用以下命令
2.#切换到上传的文件目录下 执行
docker build -t coremvc . 【coremvc 为项目名称】
docker run --name netcore-mvc -d -p 8080:80 coremvc

踩坑1:如果在run的时候遇到下面这个错误 , 那么需要重启下docker是什么问题导致的我也不是很清楚:
命令:systemctl restart docker
docker: Error response from daemon: driver failed programming external connectivity on endpoint net5test01 (615e77932cc0460483d895197d1bd97135ecb81d961422d8d65bf1c7d228ac57): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8086 -j DNAT --to-destination 172.17.0.3:80 ! -i docker0: iptables: No chain/target/match by that name.

踩坑2:
如果是下面这个错误那么需要更改build命令

docker build -t coremvc -f Dockerfile . --network=host

docker build: Unable to load the service index for source https://api.nuget.org/v3/index.json.

防火墙开端口:firewall-cmd --zone=public --add-port=9092/tcp --permanent
容器一直跑不自动停止得解决办法:docker container update --restart=always 容器名字

docker run -dit --name zookeeper -p 2181:2181 wurstmeister/zookeeper
docker run -dit --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=ip:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值