离线安装docker并离线安装应用 (by quqi99)

浅浅的花香味﹌ 2022-10-09 12:24 364阅读 0赞

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (作者:张华 发表于:2021-06-24)

  1. echo 'step 1 - install offline docker'
  2. wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.7.tgz
  3. cat << EOF |tee docker.service
  4. [Unit]
  5. Description=Docker Application Container Engine
  6. Documentation=https://docs.docker.com
  7. After=network-online.target firewalld.service
  8. Wants=network-online.target
  9. [Service]
  10. Type=notify
  11. # the default is not to use systemd for cgroups because the delegate issues still
  12. # exists and systemd currently does not support the cgroup feature set required
  13. # for containers run by docker
  14. ExecStart=/usr/bin/dockerd
  15. ExecReload=/bin/kill -s HUP $MAINPID
  16. # Having non-zero Limit*s causes performance problems due to accounting overhead
  17. # in the kernel. We recommend using cgroups to do container-local accounting.
  18. LimitNOFILE=infinity
  19. LimitNPROC=infinity
  20. LimitCORE=infinity
  21. # Uncomment TasksMax if your systemd version supports it.
  22. # Only systemd 226 and above support this version.
  23. #TasksMax=infinity
  24. TimeoutStartSec=0
  25. # set delegate yes so that systemd does not reset the cgroups of docker containers
  26. Delegate=yes
  27. # kill only the docker process, not all processes in the cgroup
  28. KillMode=process
  29. # restart the docker process if it exits prematurely
  30. Restart=on-failure
  31. StartLimitBurst=3
  32. StartLimitInterval=60s
  33. [Install]
  34. WantedBy=multi-user.target
  35. EOF
  36. cat << EOF |tee install.sh
  37. #!/bin/sh
  38. tar -xvf \$1
  39. cp docker/* /usr/bin/
  40. cp docker.service /etc/systemd/system/
  41. chmod +x /etc/systemd/system/docker.service
  42. systemctl daemon-reload
  43. systemctl start docker
  44. systemctl enable docker.service
  45. docker -v
  46. sudo systemctl status docker
  47. EOF
  48. cat << EOF |tee uninstall.sh
  49. #!/bin/sh
  50. rm -f /etc/systemd/system/docker.service
  51. rm -rf /usr/bin/docker*
  52. systemctl daemon-reload
  53. EOF
  54. sudo sh ./install.sh ./docker-20.10.7.tgz
  55. echo 'step 2 - make a test image'
  56. cat << EOF | sudo tee simple-go-http-server.go
  57. package main
  58. import (
  59. "io"
  60. "log"
  61. "net/http"
  62. "os"
  63. "time")
  64. type myHandler struct{}
  65. func (*myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  66. io.WriteString(w, "ok")
  67. }
  68. func main() {
  69. var port string
  70. port = ":" + os.Args[1]
  71. srv := &http.Server{
  72. Addr: port,
  73. Handler: &myHandler{},
  74. ReadTimeout: 30 * time.Second,
  75. WriteTimeout: 30 * time.Second,
  76. }
  77. log.Fatal(srv.ListenAndServe())
  78. }
  79. EOF
  80. cat << EOF |tee Dockerfile
  81. FROM golang:latest
  82. RUN mkdir /app
  83. ADD simple-go-http-server.go /app/
  84. WORKDIR /app
  85. CMD [ "go", "run", "/app/simple-go-http-server.go", "8080" ]
  86. EOF
  87. sudo docker build -t simple-go-http-server .
  88. echo 'step 3 - save image to local file'
  89. IMG_ID=$(docker image ls |awk '/simple-go-http-server/ {print $3}')
  90. # docker save -o images.tar postgres:9.6 mongo:3.4
  91. docker save $IMG_ID > myapp.tar
  92. echo ' step 4 - load image'
  93. docker load < myapp.tar
  94. IMG_ID2=$(docker image ls |awk '/none/ {print $3}')
  95. docker image tag $IMG_ID2 zhhuabj/myapp:latest
  96. echo 'step 5 - test image'
  97. sudo docker run -d --rm --name myapp zhhuabj/myapp:latest
  98. APP_IP=$(docker inspect myapp |grep '"IPAddress"' |head -n1 |awk -F '"' '{print $4}')
  99. curl ${APP_IP}:8080

发表评论

表情:
评论列表 (有 0 条评论,364人围观)

还没有评论,来说两句吧...

相关阅读