docker 新手入门进阶详细篇 发表于 2021-07-27 | 更新于 2024-11-24
| 总字数: 2.2k | 阅读时长: 9分钟 | 浏览量:
Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
废话不讲辣么多,干就完事
0x01 docker 换源首先dokcer 官方仓库是搭建在国外的,所以我们需要 换源 参考博客🔗 * https://blog.csdn.net/doudou_mylove/article/details/105122843 获取专属 docker 加速地址
为啥要强行修改dns 呢?可能我只是想解析的更快点吧,男人不能不行,倒是必须得快🤢
1 sudo vim /etc/docker/daemon.json
1 2 3 4 5 6 7 8 9 { "registry-mirrors" : [ "https://vipxxx.mirror.aliyuncs.com" ] , "dns" : [ "223.5.5.5" , "8.8.8.8" ] }
1 sudo systemctl restart docker docker.service
Mac docker 可以在docker desktop 设置里面修改
0x02 docker 仓库 和 容器 docker 拉取(pull) 推送(push) 的是 容器(image)
1 2 docker pull nginx:latest docker push nginx:latest
docker 运行(run) 完成后建立的叫 容器(Apps /Containers )
0x03 docker 新建容器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 docker run -it \ --name cs \ -e "passwd=你的密码" \ -e "server_ip=你的服务器IP地址,可以是内网地址,比如10.0.4.6" \ -e "server_port=cs指定登陆端口" \ -e "aliasname=Bing Wallpaper" \ -e "dname=CN=www.microsoft.com, OU=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=WA, C=US" \ -p cs指定登陆端口:cs指定登陆端口 \ -p 云函数专用,可以是任意端口,后面443不可改变:443 \ -p 随意端口号:随意端口号 \ -p cs指定登陆端口:cs指定登陆端口/udp \ -p 云函数专用,可以是任意端口,后面443不可改变:443/udp \ -p 随意端口号:随意端口号/udp \ xrsec/cobaltstrike:none
是不是看的一头雾水?别急 看这里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 docker run -it \ --name cs \ -e "passwd=你的密码" \ -e "server_ip=你的服务器IP地址,可以是内网地址,比如10.0.4.6" \ -e "server_port=cs指定登陆端口" \ -e "aliasname=Bing Wallpaper" \ -e "dname=CN=www.microsoft.com, OU=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=WA, C=US" \ -p cs指定登陆端口:cs指定登陆端口 \ -p 云函数专用,可以是任意端口,后面443不可改变:443 \ -p 随意端口号:随意端口号 \ -p cs指定登陆端口:cs指定登陆端口/udp \ -p 云函数专用,可以是任意端口,后面443不可改变:443/udp \ -p 随意端口号:随意端口号/udp \ xrsec/cobaltstrike:none
如果你们希望容器自动重启,可以设置 restart 参数
重启函数 Docker容器的重启策略如下: no,默认策略,在容器退出时不重启容器 on-failure,在容器非正常退出时(退出状态非0),才会重启容器 on-failure:3,在容器非正常退出时重启容器,最多重启3次 always,在容器退出时总是重启容器 unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
1 2 3 4 5 docker run -it --name test --restart =always nginx:latest docker run -it --name test --restart =on -failure:3 nginx:latest docker container update --restart =always 容器名字 docker inspect -f "{{ .RestartCount }}" 容器名字 docker inspect -f "{{ .State.StartedAt }}" 容器名字
新建讲完了,那我们讲一下基础维护吧
维护容器 1 2 3 4 5 6 7 8 9 10 11 12 docker images docker search images docker pull images docker ps docker ps -a docker inspect $CONTAINER_ID(容器的ID,可以通过docker ps 查看) docker rm 容器名称 docker restart 容器名称 docker stop 容器名称 docker start 容器名称 docker logs 容器名称 docker image prune -af
掌握了这些你们就是大佬了,再学下去我就要要饭了🥴
?就拿这个考验老干部?
番外篇 新建镜像 讲的比较简单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 FROM ubuntu:18.04 LABEL maintainer="xrsec" LABEL mail="Jalapeno1868@outlook.com" RUN mkdir /awvs COPY awvs.sh /awvs COPY Dockerfile /awvs COPY xaa /awvs COPY xab /awvs COPY xac /awvs COPY xad /awvs COPY xae /awvs COPY xaf /awvs COPY awvs_listen.zip /awvs RUN apt update -y \ && apt upgrade -y \ && apt-get install wget libxdamage1 libgtk-3-0 libasound2 libnss3 libxss1 libx11-xcb-dev sudo libgbm-dev curl ncurses-bin unzip -y RUN cat /awvs/xaa /awvs/xab /awvs/xac /awvs/xad /awvs/xae /awvs/xaf > /awvs/awvs_x86.sh \ && chmod 777 /awvs/awvs_x86.sh \ && sed -i "s/read -r dummy/#read -r dummy/g" /awvs/awvs_x86.sh \ && sed -i "s/pager=\"more\"/pager=\"cat\"/g" /awvs/awvs_x86.sh \ && sed -i "s/read -r ans/ans=yes/g" /awvs/awvs_x86.sh \ && sed -i "s/read -p \" Hostname \[\$host_name\]:\" hn/hn=awvs/g" /awvs/awvs_x86.sh \ && sed -i "s/host_name=\$(hostname)/host_name=awvs/g" /awvs/awvs_x86.sh \ && sed -i "s/read -p \" Hostname \[\$host_name\]:\" hn/awvs/g" /awvs/awvs_x86.sh \ && sed -i "s/read -p ' Email: ' master_user/master_user=awvs@awvs.com/g" /awvs/awvs_x86.sh \ && sed -i "s/read -sp ' Password: ' master_password/master_password=Awvs@awvs.com/g" /awvs/awvs_x86.sh \ && sed -i "s/read -sp ' Password again: ' master_password2/master_password2=Awvs@awvs.com/g" /awvs/awvs_x86.sh \ && sed -i "s/systemctl/\# systemctl/g" /awvs/awvs_x86.sh \ && /bin/bash /awvs/awvs_x86.sh RUN chmod 777 /awvs/awvs.sh \ && unzip -d /awvs/awvs_listen /awvs/awvs_listen.zip \ && chmod 444 /awvs/awvs_listen/license_info.json \ && cp /awvs/awvs_listen/wvsc /home/acunetix/.acunetix/v_210628104/scanner/ \ && cp /awvs/awvs_listen/license_info.json /home/acunetix/.acunetix/data/license/ \ && cp /awvs/awvs_listen/wa_data.dat /home/acunetix/.acunetix/data/license/ \ && chown acunetix:acunetix /home/acunetix/.acunetix/data/license/wa_data.dat ENTRYPOINT [ "/awvs/awvs.sh" ] EXPOSE 3443 告诉后面的兄弟记得开3443 端口STOPSIGNAL SIGQUIT CMD ["/awvs/awvs.sh" ]
小伙子,我看出来了,你以后必然是干大事业的人,带带弟弟好吗?
XRSec has the right to modify and interpret this article. If you want to reprint or disseminate this article, you must ensure the integrity of this article, including all contents such as copyright notice. Without the permission of the author, the content of this article shall not be modified or increased or decreased arbitrarily, and it shall not be used for commercial purposes in any way