Write Dockerfile and upload DockerHub

Empty your cup so that it can be filled again. —— Bruce Lee

This paper introduces

  • P2 Build a production-level Linux system
  • P3 Learn Docker in half an hour
  • P4 Write Dockerfile and upload DockerHub
  • P5 Docker SpringCloud – compose deployment
  • P6 Build Harbor private server for enterprise mirror
  • P7 K8S & Rancher is coming! Theory & Preparation
  • P8 Rancher2.3 built K8S 1.16 cluster
  • P9 Deploy Spring Cloud to Kubernetes
  • P10 Deploy Vue to Kubernetes config ingress
  • P11 Ha01-rke install Kubernetes cluster
  • P12 HA02-Helm deploys the Rancher cluster

Build Harbor private server for enterprise mirror

According to Teacher Leng in the last course, Docker-compose has been installed. Again, for the record:

mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose version

Copy the code

Version View:

docker version

docker-compose version
Copy the code

Install the Harbor

Harbor Offline Installer Harbor Online Installer The difference is that the Harbor Offline Installer contains the image file that Harbor needs to use. The file is downloaded successfully and decompressed

Tar - ZXVF harbor - offline installer - v1.9.3..tgz/root /cd harbor

vi harbor.yml 

sh install.sh

Copy the code

Normal condition:

Special cases: The configuration needs to be modified, and the Docker version is abnormal

The default access account is admin/Harbor12345You can enter the configuration file to modifyDefault access port: 80Copy the code

Editing a Configuration File

Harbor. yml is the configuration file for this project

Modify the hostname preentry

Change hostname to your local address or IP address

Write a public IP address or domain name for public network access
hostname = A.B.C.D  
Copy the code

run

After modifying the configuration file, run sh install.sh

Common Management Commands

Docker-compose stop Docker-compose start Docker-compose stop Docker-compose start

GUIl interface is used

New project

Create a new project, name it Pig4Cloud, and set the access level to public. The project here is a privatized Docker image warehouse.

Upload the image

Modify the Docker configuration

Docker requests by HTTPS by default, so you need to modify the docker configuration. Change the address of the trusted library to “A.B.C.D” and “IP:PORT” to modify the file vim /etc/dock/daemon.json

{
  "insecure-registries": [
    "IP:PORT"]}Copy the code

Run systemctl daemon-reload and restart docker systemctl restart docker

To make the mirror

Make hello-k8s a private image. Hello-k8s is the image I pulled from the DockerHub.

# docker tag IP: PORT/pig4cloud/hello - k8s: 0.0.1Docker tag pig A.B.C.D/pig4cloud/hello - k8s: 0.0.1Copy the code

upload

Log in to the private library first
docker login IP:PORT
Copy the code
PUSH
Docker push IP: PORT/pig4cloud/hello - k8s: 0.0.1Copy the code

The image is already visible in the background

Problem of aggregation

The login problem
[root@blockgo k8s-nginx]# docker login IP:PORT
Username: huangbosbos
Password: 
Error response from daemon: Get https://IP:PORT/v2/: http: server gave HTTP response to HTTPS client
Copy the code

Modify /etc/docker-daemon. json address to IP:PROT:

[root@blockgo ~]# docker login IP:PORT
Username: huangbosbos
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
Copy the code

Upload problem

[root@blockgo k8s-nginx]# docker push IP:PORT/pig4cloud/hello-k8s
The push refers to repository [IP:PORT/pig4cloud/hello-k8s]
7c2f050e271f: Pushing  4.096kB
4fc1aa8003a3: Retrying in 1 second 
5fb987d2e54d: Retrying in 1 second 
831c5620387f: Retrying in 1 second 
EOF
Copy the code

TODO may be a problem with nginx file upload restriction configuration.

Form a complete set of data

Please pay attention to wechat (Java-note), message: K8S for supporting information