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
编辑器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

浙公网安备 33010602011771号