Docker基础功能教学

#Docker Install

安装下载相关套件sudo apt-get updatesudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common加入Docker GPG keycurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –加入Docker资料库sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable“安装Docker Enginesudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io测试Docker安装是否成功sudo docker run hello-world安装特定版本Docker Engineapt-cache madison docker-ce (列出版本资讯)sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

#Docker Run [Option] 用法

Sudo docker run [Option] [Image] [Command] [Arg] (Ex : Sudo docker run --rm -d alpine sleep 10) (Ex : Sudo docker run -it alpine /bin/sh)Option-d 将Container跑在背景 (不会卡死terminal)-e 设置环境参数-i 保持STDIN开启-t 开启pseudo-TTY (通常-it连用)--name 给Container一个别名--p 将Container中的Port对应到本机的Port--rm 在Container停止后自动删除-v 将Container内的资料夹与本机的资料夹做映射!

#Docker 基本指令

sudo docker ps –a : 列出目前产生的Containersudo docker images : 列出目前有的Images档案sudo docker rm [Container ID] : 删除特定Container!sudo docker rmi [Images ID] : 删除特定映像档sudo docker run [Images] : 建立Containersudo docker exec [Container ID] : 传送指令给正在运行的Containersudo docker inspect [Container ID] : 列出容易的相关设定参数Sudo docker start [Container ID] : 重新启动ContainerSudo docker stop [Container ID] : 停止Container运行

#Docker Container特性

http://img2.58codes.com/2024/20139199D1nHwsWlpp.jpg

#自製Docker Images

http://img2.58codes.com/2024/20139199WqxJK86RmR.jpg

Dockerfile内容如下
FROM alpine:3.10.1RUN apk update && apk upgrade && apk add --no-cache nano sudo wget curl \tree elinks bash shadow procps util-linux coreutils binutils findutils grep && \wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 && \chmod +x busybox-x86_64 && mv busybox-x86_64 bin/busybox1.28CMD ["/bin/bash"]

#自製可由SSH连入的Docker Container

http://img2.58codes.com/2024/201391997SZ6eSEDzP.jpg

Dockerfile内容如下
FROM alpine.baseRUN apk update && apk upgrade && apk add --no-cache openssh openrc && rc-update add sshd && \      # 设定 OpenSSH    mkdir /run/openrc && touch /run/openrc/softlevel && rc-status &>/dev/null && \    # 建立 sshup    echo '#!/bin/bash' > /usr/bin/sshup && echo -e 'Welcome to Alpine 3.10.1\n' > /etc/motd && \     echo '/etc/init.d/sshd start &>/dev/null && tail -f /dev/null' >> /usr/bin/sshup && chmod +x /usr/bin/sshup && \    # 建立管理者帐号adduser -s /bin/bash -h /home/user -G wheel -D user && echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \    echo -e "userd\nuser\n" | passwd user &>/dev/null && [ "$?" == "0" ] && echo “Add user ok!"ENTRYPOINT ["/usr/bin/sshup"]

#Docker 桥接网路架构图

http://img2.58codes.com/2024/201391994Lf9JBY8wz.jpg

#Docker 建立新的桥接器

http://img2.58codes.com/2024/20139199vMFtNgYNLi.jpg

#Docker中共用资料夹

http://img2.58codes.com/2024/20139199mEm0Ox8cCw.jpg

#Docker建立资料库测试

http://img2.58codes.com/2024/20139199nksRnX09nE.jpg

#在Ubuntu运行C#

注册Microsoft Key and Repositywget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O - - packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.deb下载安装dotnet-sdksudo add-apt-repository universesudo apt-get updatesudo apt-get install apt-transport-httpssudo apt-get updatesudo apt-get install dotnet-sdk-3.1测试查询可建立专案类型 : dotnet new --list建立新专案 : dotnet new [专案类型] –o [ProjectName] (EX : dotnet new console –o test )运行专案 : dotnet run [.csproj File] (EX : dotnet run ./test.csproj )

#在将C# Code包装为Docker Image

http://img2.58codes.com/2024/20139199qyf8AKzzXu.jpg

Dockerfile内容如下
# https://hub.docker.com/_/microsoft-dotnet-coreFROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS buildWORKDIR /source# copy csproj and restore as distinct layersCOPY *.csproj .RUN dotnet restore# copy and publish app and librariesCOPY . .RUN dotnet publish -c release -o /app --no-restore# final stage/imageFROM mcr.microsoft.com/dotnet/core/runtime:3.1WORKDIR /appCOPY --from=build /app .ENTRYPOINT ["dotnet", "dotnet.dll"]

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章