Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
August 10, 2022 04:29 pm GMT

amazing! Millions of people are learning Docker!(Chinese)

1

1.1

1.1.1Docker

:::info
Docker Linux
:::
Docker

  1. dockerClient
  2. Docker Daemon
  3. Docker Image
  4. DockerContainer

DockerDocker EngineC/S
Docker daemonDocker daemonDaemonDockerimagescontainersnetworksdata volumes
RESTdaemonREST API
Docker clientCLIREST APIDocker daemonDocker1-1
image.png
1-1 Docker

1.1.2Docker

image.png
1-2 Docker
DockerDocker daemonDocker ClientDocker ImageDocker RegistryDocker Contrainer1-2
1Docker
DockerDockerfileBase ImageDockerUnionFSLayerDockerDockerfileDockerfile
FROM
MAINTAINER
RUNlinux
ADD
EVN
CMD
2Docker

ubuntu-i /bin/bash

$ docker run -i -t ubuntu /bin/bash

pullDocker Engine ubuntu Docker Engine


/
IPIP
/bin/bash

3Docker
DockerDockerDocker RegistryDocker HubDockerDocker DockerDockerswarm
Docker Registry RepositoryTag

<>:<> latest
Ubuntuubuntu 14.04, 16.04 ubuntu:14.04 ubuntu:16.04 ubuntu ubuntu:latest

docker pull ubuntu:16:04docker pull ubuntu:14:04docker pull ubuntu  #  ubuntu:latest

1.2

1.2.1

:CentOS 7.9
Docker: 1.13.1

1.2.2

:::info
1-4
:::
1.selinux

# vi /etc/sysconfig/selinuxSELINUX=disabled # enforcingdisabled# getenforceDisabled

2.

systemctl stop firewalld

3.iptables

iptables Fiptables Xiptables Z/usr/sbin/iptables-save

4.

vi /etc/sysctl.conf/etc/sysctl.conf, :wq net.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter = 0#sysctl p

2

2.1Docker

2.1.1CentOSDocker

yum install -y docker  #dockersystemctl restart docker #dockersystemctl enable docker #

image.png

2.1.2UbuntuDocker

sudo apt-get updatesudo apt-get install -y docker.io

image.png

3

:::info
Docker Docker Docker Docker Hub

:::

3.1

:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
image.png

image.png

3.2(pull)

docker pull
nginx

# nginxdocker pull nginx

image.png

3.3(images)

# docker images 

image.png

(REPOSITORY)---> docker.io/nginx
nginx (TAG) latest
ID ---> b692a91e4e15
---> 2 days ago
---> 142 MB

3.4(commit/import/Dockerfile)

3.4.1commit

:::info
-m -a ID tag ID
:::

# nginx  808180docker run -dit --name nginx -p 8081:80 nginx# docker ps -a# exec  nginxdocker exec -it nginx bash# echo  index.htmlecho "this is v2 website" > /usr/share/nginx/html/index.html#  ee9d263ea0f7  nginx  iddocker commit -m "this is v2 web" -a "UniStars" ee9d263ea0f7 nginx:v2# docker run -dit --name nginx2 nginx:v2

image.png
image.png

3.4.2Dockerfile

Dockerfile DockerDockerfile


# mkdir dockerfilemkdir dockerfile# vi  Dockerfile vi Dockerfile# FROM centos:7RUN yum -y install httpdRUN echo "Build By Dockerfile" > /var/www/html/index.htmlRUN echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.confEXPOSE 80CMD ["/usr/sbin/httpd","-D","FOREGROUND"]# docker build -t TAG docker build -t httpd:v1 .#  docker images docker images# docker run docker run -dit --name http -p 8088:80 httpd:v1

image.png
image.png
image.png

3.4.3Dockerfile

Dockerfile #
Dockerfile

  1. #
  2. MAINTAINER
  3. FROM Docker
  4. RUN yum
  5. COPY Docker
  6. ADD COPY ADD tar URL
  7. WORKDIR Dockerfile RUNCMDENTRYPOINTCOPYADD
  8. VOLUME image Docker host
  9. EXPOSE
  10. ENV Dockerfile (ENVADDCOPYRUNCMD)
  11. CMD "/bin/sh -c"
  12. ENTRYPOINT CMD
  13. USER

3.4.3.1FROM

FROM FROM :TAG
FROM Dockerfile FROM

FROM centos:7

3.4.3.2MAINTAINER

MAINTAINER

MAINTAINER FengLei

3.4.3.3RUN

:

  1. RUN
  2. RUN ["executable", "param1", "param2"]
RUN yum -y install httpd

shell /bin/sh -c exec RUN ["/bin/bash", "-c", "echo Build_Dockerfile"]
RUN \

RUN yum clean all; \    yum install -y httpd; \    mkdir -p /var/www/html/;

3.4.3.4COPY

  1. COPY ...
  2. COPY ["",... ""]

RUN
. Dockerfile
COPY
COPY <> / <>

COPY index /usr/share/nginx/html

<> Go filepath.Match
COPY /root/* /mnt/
COPY /root/.html /usr/share/nginx/html/
<>* WORKDIR COPY Git

3.4.3.5ADD

ADD

Dockerfile URL tar

FROM centos:7ADD httpd-2.4.tar.gz /

3.4.3.6WORKDIR

WORKDIR
RUN CMD ENTRYPOINT
WORKDIR

WORKDIR /mnt/WORKDIR dir1WORKDIR dir2

/mnt/dir1/dir2

3.4.3.7USER

USER <>
USER WORKDIR WORKDIR USER RUN , CMD ENTRYPOINT
: USER

RUN groupadd -r ug && useradd -r -g ug user1USER user1

3.4.3.8VOLUME

VOLUME ["/data"]

3.4.3.9EXPOSE

EXPOSE [...]
Docker
Dockerfile docker run -P EXPOSE

FROM centos:7EXPOSE 80,22

3.4.3.10ENV

  1. ENV
  2. ENV =

RUN
MYSQL

ENV MYSQL_USER docker_userENV MYSQL_PASS docker_password

3.4.3.11CMD

:

  1. CMD ["executable","param1","param2"] exec
  2. CMD command param1 param2 /bin/sh
  3. CMD ["param1","param2"] ENTRYPOINT

Dockerfile CMD

CMD
centos CMD /bin/bash docker run -it centos , bash
docker run -it centos cat /etc/redhat-release cat /etc/redhat-release /bin/bash
image.png
** exec ** JSON "
shell sh -c
CMD echo $USERNAME CMD [ "sh", "-c", "echo $USERNAME" ]

CMD [ "sh", "-c", "echo $USERNAME" ]

shell CMD

3.4.3.12ENTRYPOINT

ENTRYPOINT
ENTRYPOINT RUN exec shell

  1. ENTRYPOINT ["executable", "param1", "param2"]
  2. ENTRYPOINT command param1 param2 shell

docker run Dockerfile ENTRYPOINT
ENTRYPOINT CMD ENTRYPOINT CMD docker run --entrypoint ENTRYPOINT CMD CMD ENTRYPOINT
"CMD"

3.4.4Dockerfile

3.4.4.1openssh-server

centos-7 ,openssh-server 22 sshd

FROM centos:7RUN yum install -y openssh-server sudoRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config #RUN useradd admin#RUN echo "admin:admin" | chpasswdRUN echo "root:123456" | chpasswd#RUN echo "admin  ALL=(ALL)    ALL" >> /etc/sudoersRUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_keyRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN mkdir /var/run/sshdEXPOSE 22CMD ["/usr/sbin/sshd", "-D"]

image.png
Dockerfile docker build
-t tag
. Dockerfile Dockerfile
image.png
image.png

3.5(tag)

:::info
,
:::

docker tag id //::docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb681637bb9c63c8b2 idregistry-vpc.cn-hangzhou.aliyuncs.com/acs/  agent 0.7-dfb6816 

3.6(push)

:::info
,
:::

3.7/(save/load)

docker save
docker load

# ,docker images# docker save -o nginx_sv2.tar nginx:v2# ls -l

image.png

# ls -l#  nginx:v2docker rmi 2ee0ee0dc960# ,2docker load --input nginx_v2.tardocker load < nginx_v2.tar

image.png
image.png

3.8supermin5

supermin5 centos7 docker centos-7 yumnet-toolsinitscripts vi

# superminyum -y install supermin*# supermin5  yum net-tools initscripts visupermin5 -v --prepare bash coreutils  yum  net-tools initscripts vim-minial  -o supermin.d# supermin5 supermin5 -v --build --format chroot supermin.d -o appliance.decho 7 >  appliance.d/etc/yum/vars/releasever# tar --numeric-owner -cpf centos-7.tar -C appliance.d .# cat centos-7.tar | docker import - centos-7# docker run -dit --name centos7 centos-7 /bin/bashcat /etc/redhat-release

image.png
image.png

3.9(rmi)

docker rmi iD:docker rmi b692a91e4e15docker rmi b6b692a91e4e15 nginxid  

image.png

4

:::info
Docker



:::

4.1

# docker ps # docker ps -a

4.2/

4.2.1

:
-d ID
-t Dockerpseudo-tty
-i
-p :
-P
-v
-w
--rm
--restart --restart=always
--name

# ,8080  nginx docker run -dit --name nginx -p 80:80 --restart=always nginx

image.png

4.2.2

docker start /id

image.png

4.2.3

docker stop /id

image.png

4.3

# docker rm /id#   -f  docker rm -f /id# docker container prune

image.png

4.4

-d docker attach docker exec docker exec

4.4.1attach

attach attach ,
attach

docker attach centos7

image.png

4.4.2exec

docker exec -i -t -i Linux -i -t Linux

docker exec -it centos7 bash

image.png

4.5

4.5.1

docker export id > tardocker export 82be49d3c283 > nginx.tar

image.png

4.5.2

# cat tar | docker import - /:tag# cat nginx.tar | docker import - unistars/nginx:v1

image.png

5

Repository
Registry
registry.cn-hangzhou.aliyuncs.com/fl_test/docker_demo

  1. registry.cn-hangzhou.aliyuncs.com
  2. fl_test
  3. docker_demo## 5.1:::info Docker Docker Hub 15,000 Docker Hub :::

5.1.1

()https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard

  1. ---
  2. ----

image.pngimage.png

5.1.2

docker login .dockercfg
image.png

5.2

docker-registry

5.2.1 registry

# docker run -dit --name registry --restart=always -p 5000:5000 registry# dockervi /etc/sysconfig/docker# # 172.31.36.113 IPIPADD_REGISTRY='--add-registry 172.31.36.113:5000'INSECURE_REGISTRY='--insecure-registry 172.31.36.113:5000'vi /etc/docker/daemon.json# #  , "insecure-registries":["172.31.36.113:5000"]

image.png
image.png
image.png

5.2.2

curl 172.31.36.113:5000/v2/_catalog

image.png

6

6.1

UFS

Linux mount

6.1.1

#  new-volume docker volume create new-volume# docker volume ls# docker volume inspect new-volume

image.png

6.1.2

# nginxdocker run -dit --name nginx -v new-volume:/mnt nginx#  grep -a  docker inspect nginx|grep Mounts -a5

image.png
image.png

6.1.3

Docker docker rm -v

docker volume rm new-volume


docker volume prune

6.2

6.2.1

-v

# rootwebindex.htmlmkdir /root/webecho "This is mount root dir" > /root/web/index.html#  /root/web/  /usr/share/nginx/htmldocker run -dit --name nginxweb -p 8088:80 -v /root/web/:/usr/share/nginx/html/ nginx# curlcurl localhost:8088

image.png
/root/web ** /usr/share/nginx/html
Docker
Dockerfile * Dockerfile
Docker :ro

docker run -dit --name nginxweb -p 8088:80 -v /root/web/:/usr/share/nginx/html/:ro nginx

image.png

6.2.2

-v

# echo "This is mount single file" > /root/index.html# docker run -dit --name nginxweb -p 8088:80 -v /root/index.html:/usr/share/nginx/html/index.html nginx

image.png

6.3

nginx nginxweb1nginxweb2nginxweb3

# nginxweb1 docker run -dit --name nginxweb1 -p 8081:80 -v /usr/share/nginx/html nginx# nginxweb2nginxweb3  nginxweb1docker run -dit --name nginxweb2 --volumes-from nginxweb1 -p 8082:80 nginxdocker run -dit --name nginxweb3 --volumes-from nginxweb1 -p 8083:80 nginx# curlcurl localhost:8081curl localhost:8082curl localhost:8083# nginxweb1 index.htmldocker exec -it nginxweb1 bashecho "This is nginxweb1 website" > /usr/share/nginx/html/index.html#  exitcurl localhost:8081curl localhost:8082curl localhost:8083

image.png
image.png

7

7.1

-P -p
-P Docker 49000~49900
docker ps 49153 80 49153 web

# docker run -dit --name nginxweb1 -p 8081:80 nginx# docker run -dit --name nginxweb4 -P nginx# docker ps -a

image.png

7.2

--network=host

docker run -dit --network=host --name nginx-host nginx

image.png

7.3

7.3.1

-d Docker bridge overlay overlay Swarm mode

docker network create -d bridge new-net

7.3.2

docker run -dit --name box1 --network new-net busyboxdocker run -dit --name box2 --network new-net busybox

7.3.3ping

# box1docker exec -it box1 sh# pingping box2

image.png

7.4docker0

7.4.1

7.4.1.1btctl

yum install -y bridge-utils

7.4.1.2

brctl  show

image.png

7.4.1.3docker

systemctl stop docker

7.4.1.4docker0

ip link set dev docker0 down

7.4.1.5docker0

brctl delbr docker0

7.4.1.6

brctl show

image.png

7.4.2

7.4.2.1bridge0

brctl addbr bridge0

7.4.2.2bridge0

brctl show

image.png

7.4.2.3

ip addr add 192.168.0.1/24 dev bridge0

7.4.2.4bridge0

ip link set dev bridge0 up

7.4.2.5bridge0

ifconfig bridge0

image.png

7.4.2.6

vi /etc/sysconfig/docker#  -b=bridge0  OPTIONS OPTIONS='-b=bridge0'

7.4.2.7docker

systemctl daemon-reloadsystemctl restart docker

image.png

7.4.3

7.4.3.1nginx

docker run -dit --name nginx-net nginx

7.4.3.2

docker ps -a

image.png

7.4.3.3bridge

docker inspect -f {{.NetworkSettings.Networks.bridge}} nginx-net

image.png

8Nginx()

8.1

# web1 mkdir /root/web1echo "This is website 1 Page 11111111111111111" > /root/web1/index.html# web2 mkdir /root/web2echo "This is website 2 Page 22222222222222222" > /root/web2/index.html

image.png

8.2 nginx1 nginx2

# nginx1 web1docker run -dit --name nginx1 -v /root/web1/index.html:/usr/share/nginx/html/index.html -p 8091:80 nginx# nginx2 web2docker run -dit --name nginx2 -v /root/web2/index.html:/usr/share/nginx/html/index.html -p 8092:80 nginx

image.png

8.3nginx.conf

:::info
172.31.36.113 IP
:::

user  nginx;worker_processes  1;error_log  /var/log/nginx/error.log warn;pid        /var/run/nginx.pid;events {    worker_connections  1024;}http {    include       /etc/nginx/mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  /var/log/nginx/access.log  main;    sendfile        on;    #tcp_nopush     on;    keepalive_timeout  65;    #gzip  on;    include /etc/nginx/conf.d/*.conf;# Tomcatupstream tomcat_alb {    server 172.31.36.113:8091;    server 172.31.36.113:8092;}server {    listen       80;    server_name  172.31.36.113;#IP    #charset koi8-r;    #access_log  /var/log/nginx/host.access.log  main;# Tomcat    location / {        proxy_pass http://tomcat_alb;    }}}

8.4nginx

# -v  /root/nginx.conf docker run -dit --name nginx-alb -v /root/nginx.conf:/etc/nginx/nginx.conf -p 80:80 nginx

image.png

8.5

# for i in `seq 1 6`;do curl 172.31.36.113;done

image.png


Original Link: https://dev.to/leifengflying/amazing-millions-of-people-are-learning-dockerchinese-4ca5

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To