ubuntu版本
ubuntu@VM-0-10-ubuntu:~$ cat /etc/issue
Ubuntu 20.04 LTS \n \l
1.安装docker
更新软件源
sudo apt-get update
安装包允许apt通过HTTPS使用仓库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置Docker稳定版仓库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
添加仓库后,更新apt源索引
sudo apt-get update
安装最新版Docker CE(社区版)
sudo apt-get install docker-ce
检查Docker CE是否安装正确
sudo docker run hello-world
第二步出错删除即可继续
以下出现问题使用
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
解决:
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
2.配置项目webapi项目
修改配置文件
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /apps
EXPOSE 5000
COPY . .
ENTRYPOINT ["dotnet", "ZZZ.WebApi.dll"]
发布文件,Dockerfile选择始终复制,发布后文件
打包成.tar格式,上传至服务器,这里用winscp,通过ssh上传
上传至服务器后,解压缩到根目录
root@ubuntu:/home/zzz/Downloads# tar -xvf html.tar -C /
这时在根目录,有html3文件夹,cd进入
生成镜像 build
root@ubuntu:/html3# docker build -t corewebapi .
查看是否成功执行docker images
root@VM-0-10-ubuntu:/home/ubuntu# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
corewebapi latest 013c860c7086 About an hour ago 243MB
mcr.microsoft.com/dotnet/aspnet 3.1 a0d5ee7de37e 6 days ago 208MB
hello-world latest d1165f221234 6 months ago 13.3kB
这个的3.1就是我们打包时候
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base 下载的镜像
继续执行run生成容器,我们设置的外部调用的5000端口
docker run --name corewebapi3 -d -p 5000:80 corewebapi
查看容器是否成功,是不是成功看你这句命令后,是否生成一串hash值,否则解决错误并重试
root@VM-0-10-ubuntu:/home/ubuntu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bef770ebecca corewebapi "dotnet ZZZ.WebApi.d…" 2 hours ago Up 2 hours 5000/tcp, 0.0.0.0:5000->80/tcp, :::5000->80/tcp corewebapi3
此时就可以外部,访问5000端口,是否成功了
然后设置docker自启动
systemctl enable docker.service
设置容器自启动
docker update --restart=always 1450df2e17e3
这样即使重启,对我们也没有大的影响
附:删除容器,先停止容器
操作容器
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器
$ docker rm xxx remove删除所有容器
删除镜像
docker rmi 579be85d9bf6