Microservices training01

Posted by Yuanbo on March 10, 2019

Microservices training

by john@xx.com

john.cloudlab.jnnapti.io

u/n: john pwd: john^^%

Microservices -> Springboot -> Docker -> kubbernates -> Openshift

Virtualization

Virtual Machine(VM)

Guest OS Hypervisor O/S H/W(RAM, Processor, Disk, Network)

Cloud : the difference is the way you use it. Managing the virtual machines and services.

  • Openstack to build a private cloud
  • AWS, Azure for public cloud

run on low power mode, only able to receive wake up call.

  • IaaS
  • PaaS
  • SaaS

Container can run and terminate fast. a jailed process with segregated hardware resources no separate VM.

Container technology is part of kernal

Docker as a manager of containers.

RedHat yum install

Debian apt-get install

echo $?

if return 0, means previous command run successfully.

history gives all hostory commands

docker ps list all containers.

Rule of silence: if there is nothing to say, say nothing.

rm -rf /tmp/foo/f1 return nothing since rule of silence

docker pull images

docker run will create a jailed process - container

sudo docker attach dreamy_euclid

two monitor will be mirror

short switch -i long switch –name

docker run –help

ifconfig – interface config on windows, ipconfig

inet : 178.128.81.101

*CTL + R * for reverse search


[yuzhu@lab225 ~]$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[yuzhu@lab225 ~]$ echo $?
1
[yuzhu@lab225 ~]$ 

systemctl status docker

 cat /usr/lib/systemd/system/docker.service 
 
 [yuzhu@lab225 ~]$ systemctl enable docker  
 
 [yuzhu@lab225 ~]$ sudo docker ps
 CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 
 
[yuzhu@lab225 ~]$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE


[yuzhu@lab225 ~]$ sudo docker run ubuntu:18.04 date
Unable to find image 'ubuntu:18.04' locally
Trying to pull repository docker.io/library/ubuntu ... 
18.04: Pulling from docker.io/library/ubuntu
6cf436f81810: Pull complete 
987088a85b96: Pull complete 
b4624b3efe06: Pull complete 
d42beb8ded59: Pull complete 
Digest: sha256:7a47ccc3bbe8a451b500d2b53104868b46d60ee8f5b35a24b41a86077c650210
Status: Downloaded newer image for docker.io/ubuntu:18.04
Mon Mar 11 04:27:46 UTC 2019
[yuzhu@lab225 ~]$ echo $?
0


[yuzhu@lab225 ~]$ sudo docker run ubuntu:18.04 date
Mon Mar 11 04:28:57 UTC 2019


[yuzhu@lab225 ~]$ sudo docker stop determined_perlman 
determined_perlman

[yuzhu@lab225 ~]$ sudo docker logs determined_perlman 


 docker ps -a | grep -v CONTAINER | awk '{print $NF}'
 
 sudo docker attach dreamy_euclid
 
 
 WM-C02TX3AGHTD8:~ yuzhu$ docker exec -it webserver /bin/bash 

root@197985581a87:/usr/share/nginx/html# echo "<h1>hello from Yuanbo</h1>" > index.html 


exit



sudo docker cp webserver:/usr/share/nginx/html webserver 

[yuzhu@lab225 webserver]$ vi index.html 
[yuzhu@lab225 webserver]$ sudo vi index.html 
[yuzhu@lab225 webserver]$ sudo docker cp index.html webserver:/usr/share/nginx/html

docker run -d --name webserver -p 80:80 nginx 


WM-C02TX3AGHTD8:docker yuzhu$ echo "<h1>Hello from yuabo XXX.</h1>" > index.html
WM-C02TX3AGHTD8:docker yuzhu$ docker cp index.html webserver2:/usr/share/nginx/html
WM-C02TX3AGHTD8:docker yuzhu$ docker commit webserver2 myapp:0.0.1
sha256:57fc60091301bd7778732b5553899885f72cc60c804b8f209a539f2278e1970f

[root@lab225 myapp]# cat Dockerfile 
FROM nginx

RUN echo "<h1>Hello from Dockerfile</h1>" > /usr/share/nginx/html/index.html

[root@lab225 myapp]# docker build -t myapp:0.0.1 .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM nginx
 ---> 881bd08c0b08
Step 2/2 : RUN echo "<h1>Hello from Dockerfile</h1>" > /usr/share/nginx/html/index.html
 ---> Running in 56aee876dbeb

 ---> c4b6f864b819
Removing intermediate container 56aee876dbeb
Successfully built c4b6f864b819

WM-C02TX3AGHTD8:myapp yuzhu$ docker run -d --name myapp -p 9090:80 myapp:0.0.1

docker container ls

sudo su - switch to super user

[root@lab225 yuzhu]# docker rmi myapp:0.0.1 Untagged: myapp:0.0.1 Deleted: sha256:c4b6f864b819474b3906748df364509957eccdd17448b29fecc896f10ee92376 Deleted: sha256:ccb3cc4d2b66b53a69f29141708520b8d95b7b89ce255d533fd0ee6b1343185f


docker pull nginx
docker images
docker run --name webserver nginx
docker rm webserver
docker run -d --name webserver nginx
docker ps
docker run --help
docker ps
docker inspect webserver
docker inspect webserver | grep IP
docker rm -f webserver
docker run -d --name webserver -p 80:80 nginx
docker ps
docker exec -it webserver /bin/bash
docker diff webserver
docker images
docker cp 
docker cp webserver:/usr/share/nginx/html webserver
docker cp index.html webserver:/usr/share/nginx/html
docker run -d --name webserver2 -p 6080:80 nginx
docker cp index.html webserver2:/usr/share/nginx/html
docker diff webserver2
cd /var/lib/docker/
docker ps
cd /var/lib/docker/
docker ps
docker stop webserver2
docker diff webserver2
docker commit
docker commit webserver2 myapp:0.0.1
docker images
docker rm -f webserver
docker rm -f webserver2
docker run -d --name webserver -p 80:80 myapp:0.0.1

----------------------------------------------------------
mkdir -p /data/mynginx
cd /data/mynginx
cat > Dockerfile <<DELIM
FROM ubuntu:18.04

RUN apt-get update && apt-get -y install nginx

CMD ["nginx", "-g", "daemon off;"]
DELIM
docker build -t mynginx:0.0.1 .
mkdir -p /data/myapp
cd /data/myapp
cat > Dockerfile <<DELIM
FROM mynginx:0.0.1

RUN echo "<h1>Hello from Dockerfile</h1>" > /var/www/html/index.html
RUN echo "<h1>About Dockerfile</h1>" > /var/www/html/about.html
DELIM
docker build -t myapp:0.0.1 .
docker run -d --name webserver -p 80:80 myapp:0.0.1


FROM ubuntu:18.04

RUN apt-get update && apt-get -y install openjdk-8-jdk 

share location between contanier and host server


docker run -it --name java-dev -v /data/src:/src myjdk:0.0.1 /bin/bash


# In terminal 1
mkdir -p /data/myjdk
cd /data/myjdk
cat > Dockerfile <<DELIM
FROM ubuntu:18.04

RUN apt-get update && apt-get -y install openjdk-8-jdk
DELIM
docker build -t myjdk:8 .
docker run -it --name java-dev -v /data/src:/src myjdk:8 /bin/bash
# In a different terminal 2
cd /data/src
cat > HelloWorld.java <<DELIM
public class HelloWorld {
  public static void main(String args[]) {
    System.out.println("Hello World");
  }
}
DELIM
# In terminal 1 - inside the container
cd /src
javac HelloWorld.java
java HelloWorld

https://github.com/buzypi/spring-boot-hello



END