Docker 配置(dotnet 安装-卸载-使用)

一、环境

ECS(1核2G1M)+centOS7

二、卸载旧的安装包

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

yum remove docker-ce docker-ce-cli containerd.io #卸载依赖

rm -rf /var/lib/docker #删除资源

三、安装

1 安装工具包

yum install -y yum-utils

2 设置镜像仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #如果没有vpn 建议安装阿里云的--默认是国外的

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #更新yum 索引安装包

yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo #清华大学云

yum makecache fast

3 安装启动docker

 

自动安装安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装装安装命令如下:

yum install docker-ce docker-ce-cli containerd.io #安装,可能会出错,多试几次
systemctl start docker #启动
docker --version #查看docker 是否安装完成

启动Docker

sudo systemctl start docker     #启动
sudo systemctl enable docker        #设置开机自启动
docker version      #验证
sudo docker ps      #验证
systemctl status docker     #查看docker运行状态

4 vm中挂载共享目录

a、启动虚拟机,启动终端,执行“vmware-hgfsclient”命令可以输出启用的共享文件夹名称(显示的是添加共享目录时设置的共享名称)。如果没有结果,则虚拟机设置中添加的共享文件夹没有启用。从新进入设置启用即可,不用重启虚拟机。

b、用root权限执行如下命令将共享文件夹挂载到Linux中

1. sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other #将所有共享文件夹挂载到/mnt/hgfs
2. sudo vmhgfs-fuse .host:/Source-Core /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other #将名称sharedfolder的共享挂载到/mnt/hgfs

需要安装VMware Tools可能不能自动挂载共享文件夹。自动挂载点是“/mnt/hgfs”。也可以更改默认挂载点,编辑 /etc/init.d/vmware-tools

可以用“vmhgfs-fuse -h”查看命令帮助。挂载点可以自己设置,不一定要放在默认目录。

 

5、Vmvare 中 安装VmvareTools

1、sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

2、sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

3、sudo dnf install -y xorg-x11-drv-vmware

4、reboot

 

四、Docker基本操作

1 Docker常用命令

查看docker版本:docker --version
查看Docker状态:docker stats --help
查看Images库:docker images
查看docker云端可用镜像:docker search nginx 镜像名称 (可提前修改配置文件 一遍获取最新最全的镜像文件)
拉去已知镜像:docker pull nginx 镜像名称
删除镜像:docker rmi nginx
删除所有镜像:docker rmi $(docker images -q)
更新镜像:docker run -t -i ubuntu:15.10 /bin/bash
​
查看已经运行的docker容器: docker ps
查看容器的某些进程PID:doker top 名称
​
查看正在运行的容器列表 docker ps
查看最后一次启动的容器 docker ps -l
查看所有容器 docker ps -a
启动所有容器 docker start $(docker ps -a -q)
启动某个容器 docker start b750bbbcfd88
停止某个容器:docker stop <容器 ID/Name>
停止所有容器:docker stop $(docker ps -a -q)
删除某个容器:docker rm name
删除所有容器:docker rm $(docker ps -a -q)
​
后台创建并运行容器 docker run -itd --name nginx1 -p 80:80 nginx /bin/bash
创建并指定容器IP:docker run -it --name nginx --network=dockercompose --ip 172.19.0.6 --restart=always  nginx
创建并指定容器端口:docker run --name nginx -p 80:80 --restart=always  -d nginx
创建前配置挂在文件:docker run --name nginx -p 80:80 --restart=always -v /app/MyNginx/nginx.conf:/etc/nginx/nginx.conf -v /app/MyNginx/log:/var/log/nginx -v /app/MyNginx/default.conf:/etc/nginx/conf.d/default.conf -d nginx
​
参数说明
--name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定
-v 挂载文件用的,(-v 本地目录:容器目录  或 -v 容器目录) 第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面 第三个-v 表示的和第一个-v意思一样的。
-d 表示启动的是哪个镜像
​
挂在镜像指定目录运行程序:
​
复制文件到容器 docker cp sentinel.conf redis-master:/usr/local/redis
查看网络模式 docker network ls
​
进入容器方式1:docker exec -it 容器ID/容器别名称 /bin/bash 
进入容器方式2:sudo docker attach 44fc0f0582d9 
进入容器方式3:docker exec -it nginx bash
退出容器:键盘操作 Ctrl + D (退出容器且关闭) ctrl+p+q 退出容器但不关闭  或者 exit
​
查看网络
查看容器所有状态信息:docker inspect NAMES 
查看容器ip地址:docker inspect --format='{{.NetworkSettings.IPAddress}}' ID/NAMES
容器运行状态:docker inspect --format '{{.Name}} {{.State.Running}}' NAMES
​
​
​

2 DockerFile 操作

部署项目常用命令:在根目录打开PowerShell(提前安装windows版Docker) 拷贝项目生成的
1、docker build -t mujiang:2.0 .                                                 打包镜像
2、docker run --name mujiang -p 80:80 --restart=always -d mujiang:2.0            运行镜像

3 Docker打包镜像

将当前使用的容器打包为新的镜像:docker commit XXXXXX newName
保存镜像:docker save > nginx.tar nginx:latest 其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
加载镜像:docker load -i nginx.tar 其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
导出容器:docker export -o nginx-test.tar nginx-test   其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
导入容器:docker import nginx-test.tar nginx:imp

4 Docker手动发布Core项目

编辑器PowerShell 安装Shh
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
登录服务器
ssh root@192.168.132.130
安装 dotnet 环境
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-5.0
​
挂在程序主目录到 本地虚拟机环境;提前启用共享;
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other #将所有共享文件夹挂载到/mnt/hgfs 
cd /mnt/hgfs/Source/
docker images
​
方式一、手动编译时需要共享源码到虚拟机操作 可执行以下代码,然后通过挂在的方式运行呈现;
1、创建工作目录
mkdir /app
mkdir /app/build
mkdir /app/publish
​
2、编译:dotnet build "Cps.WebApp.csproj" -c Release -o /app/build
3、发布:dotnet publish "Cps.WebApp.csproj" -c Release -o /app/publish
4、挂载Docker容器:提前现在运行镜像;
docker run -itd -p 8081:80  --restart=always --name mujiang8801 -v /app/publish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet:5.0 dotnet Cps.WebApp.dll
docker run -itd -p 8082:80  --restart=always --name mujiang8802 -v /app/publish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet:5.0 dotnet Cps.WebApp.dll
docker run -itd -p 8083:80  --restart=always --name mujiang8803 -v /app/publish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet:5.0 dotnet Cps.WebApp.dll
docker run -itd -p 8084:80  --restart=always --name mujiang8804 -v /app/publish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet:5.0 dotnet Cps.WebApp.dll
​
 

 

5 Docker工作常用命令

启动redis
1、docker run -itd --name redis1 -p 6379:6379 --restart=always redis /bin/bash
2、docker exec -it redis1 /bin/bash
​
启动nginx
1、docker run -itd --name nginx1 -p 80:80 --restart=always nginx /bin/bash
2、创建容器前配置挂在文件:docker run --name nginx -p 80:80 --restart=always -v /app/MyNginx/nginx.conf:/etc/nginx/nginx.conf -v /app/MyNginx/log:/var/log/nginx -v /app/MyNginx/default.conf:/etc/nginx/conf.d/default.conf -d nginx
拷贝nginx文件到本地: docker cp  fa5e2ec0b05b:/etc/nginx/nginx.conf  /app/MyNginx
                  docker cp  fa5e2ec0b05b:/etc/nginx/conf.d/default.conf  /app/MyNginx/
​
设置Docker容器可以Ping的解决方法:
首先切换下载源:sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
1、apt-get update
2、apt install iputils-ping
3、apt install net-tools
4、apt install yum
5、apt install vim
6、apt install weget
​
linux 宿主机与 docker 容器文件拷贝命令
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。(需要内核3.0以上  docker 1.9以上升级请查看我的其他随笔)
容器拷贝宿主机:docker cp  96f7f14e99ab:/www /tmp/
宿主机拷贝容器:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
​

 

五、linux防火墙查看状态

A、iptables防火墙

1、基本操作

# 查看防火墙状态

service iptables status

# 停止防火墙

service iptables stop

# 启动防火墙

service iptables start

# 重启防火墙

service iptables restart

# 永久关闭防火墙

chkconfig iptables off

# 永久关闭后重启

chkconfig iptables on  

2、开启80端口

vim /etc/sysconfig/iptables # 加入如下代码 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 保存退出后重启防火墙

service iptables restart

B、firewall防火墙

开启、重启、关闭、firewalld.service服务

# 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop

  • 查看防火墙某个端口是否开放 firewall-cmd --query-port=80/tcp

  • 开放防火墙端口80 firewall-cmd --zone=public --add-port=80/tcp --permanent

  • 关闭80端口

  • firewall-cmd --zone=public --remove-port=80/tcp --permanent

  • 配置立即生效

  • firewall-cmd --reload

  • 查看防火墙状态 systemctl status firewalld

  • 关闭防火墙 systemctl stop firewalld

  • 打开防火墙 systemctl start firewalld

  • 开放一段端口 firewall-cmd --zone=public --add-port=8121-8124/tcp --permanent

  • 查看开放的端口列表 firewall-cmd --zone=public --list-ports

 

六、Linux系统更新后删除多余的历史内核

查看系统当前内核版本:uname -a

查看系统中全部的内核RPM包:rpm -qa | grep kernel

删除旧内核的RPM包:yum remove kernel-3.10.0-1062.1.2.el7.x86_64

完成后重启电脑(reboot)

posted @ 2021-11-25 15:38  拿笔小新  阅读(1040)  评论(0)    收藏  举报