docker 新手入门进阶详细篇 发表于 2021-07-27 | 更新于 2025-09-18 
| 总字数: 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容器的重启策略如下: 
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