Docker基础入门学习 / 网络研习社#31

lemooljiang(76)
Published in
#cn
Words
384
Reading
2 min
Listen
Play
7y

Docker的入门应用并不难,它就是要减免程序地学习和安装难度。这好比学开车比较容易,你要学造车就比较难了。对于普通用户,能用就ok!

docker.jpg

Docker的三大概念:仓库、镜像、容器

从上图中大家了解Docker的三大概念:仓库、镜像、容器,这个了解了,其实就学完大半了!你所要做的就是从宜家买把椅子回家,放在家中用起来就行了。

下面是这几天学习的一些笔记,大家可以参考着看看。

Docker

目录

下载与资源:

Docker version 19.03.1, build 74b1e89e8a
docker-compose version 1.23.1, build b02f1306

 : https://www.docker.com
docker-hub: https://hub.docker.com
https://docs.docker.com

Ubuntu维护版本安装(版本较旧)

sudo apt-get install docker.io
source /etc/bash_completion.d/docker.io
sudo docker.io version
docker使Docker

Docker维护版本安装

sudo apt-get install y curl
// 可以先检查下curl: whereis curl ,如果已有不用安装。

curl sSL https://get.docker.com/ | sh
sudo docker version

使rootdocker:
sudo groupadd docker
sudo gpasswd a ${USER} docker    
/ sudo gpasswd a lemooljiang docker
sudo service docker restart

sudo wget qO- https://get.docker.com | sh
sudo usermod aG docker jiangzhibin

# 另一种方法安装docker
wget -qO- https://get.docker.com/ | sh

docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.23.1
/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

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

镜像images

docker images [options] [repository]
  -a , --all=false
  -f , --filter=[]
  --no-trunc=false
  -q , --quiet=false
 
docker rmi [options] image[iamge...]
  -f , --force=false
  --no-prune=false 

获取和推送镜像

docker search [options] term
  --automated=false
  --no-trunc=false
  -s , --stars=0
docker search ubuntu    /ubuntu

docker pull [options] name [:tag]
docker pull ubuntu:14.04  / 

docker(--registry-mirror)
  vim /etc/default/docker   
  DOCKER_OPTS = "--registry-mirror=http://MIRROR-ADDR"

docker push docker/whalesay     /docker-hub

构建镜像commit

docker commit 
docker build  Dockerfile

docker commit [options] container [repository[:tag]]
  -a , --author="name"
  -m , --message="things"
  -p , --pause=true 

docker commit -a "lemool" -m "add nginx" my_ubuntu lemool/nginx_ubuntu

构建镜像Dockerfile

vim Dockerfile

FROM ubuntu:14.04      /
MAINTAINER jiangzhibin "[email protected]"  / 
RUN apt-get update        /
RUN apt-get install -y nginx
EXPOSE 80                 /

# this is first dockerfile
# version v1
FROM ubuntu
MAINTAINER  lemool "[email protected]"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80

## RUN的两种模式
RUN <command>   /shell
RUN ["executable", "param1", "param2"]  /exec

RUN echo hello
RUN ["/bin/bash","-c","echo hello"]

CMD ["executable", "param1", "param2"](exec)
CMD command param1 param2 shell

ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2

ADD <src>...<dest>
COPY <src>...<dest>
VOLUME ["/data"] 
WORKDIR /path/to/workdir
ENV <key><value>
USER daemon
ONBUILD [instruction]

docker build [options] path | url | 
docker build -t my_ubuntu .  /my_ubuntu

容器container

docker run docker/whalesay     /
docker run ubuntu echo hello world  /

docker run -i  -t  ubuntu /bin/bash      /
docker run --name mydocker -it ubuntu /bin/bash
ctrl+p ctrl+q   /退

docker inspect [options] container|image   /

docker ps        /
docker ps a      /
docker ps -l     /
docker start container_name  /
docker stop container_name 
docker extc | docker attach  /
docker rm container_name  docker rm -f   /

docker tag docker/whalesay   jiangzhibin/whalesay  /

容器的端口映射

docker run -d -P --name my_ubuntu ubuntu
    -P ,--publish-all=true | false false
docker run -P -i -t ubuntu /bin/bash

docker run -d -p 91:80 --name my_ubuntu3 ubuntu
 -p ,--publish=[]
 -p hostPort:containerPort
 -p ip:hostPort:containerPort
 -p ip::containerPort
  docker run -p 80 -i -t ubuntu /bin/bash
  docker run -p 8080:80 -i -t ubuntu /bin/bash
  docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
  docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

查看守护进程

ps ef | grep docker
sudo status docker

docker -d [options]
  -D , --debug=false
  -e , --exec-driver="native"
  -g , --graph="/var/lib/docker"
  --icc=true
  -l , --log-level="info"
  -p 
  -G
  -H
  --tls
  --api
  -s

sudo service docker stop  
sudo service docker start
 /etc/default/docker

守护式容器

docker run -d <image>
ctrl+p ctrl+q   
docker logs 
docker top <image>
docker exec -d -i -t <image> <command> <args>

docker远程访问

-H tcp://host.port
   unix:///path/to/socket
   fd"//*or fd://socketfd

-H unix:///var/run/docker.sock

docker网络连接

sudo apt-get install bridge-utils
sudo brctl show

# 更改docker0地址
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0

docker0linuxIP
  172.17.42.1  255.255.0.0

数据卷volumes

data volumes, 
docker run -v ~/container_data:/data -it ubuntu /bin/bash
  -v /data
  -v src:dst
docker inspect <image> 

docker run -it --name volume_test -v /data lemool/nginx_ubuntu
docker inspect volume_test

docker run -it --name volume_test -v /data:/data lemool/nginx_ubuntu
  /data:/data data宿data, datadockerdata

VOLUME ["/data"] 

数据卷容器

挂载数据卷的容器,以共享数据

docker run --volumes-from [container name]
docker run -it --name volume_test2 --volumes-from volume_test lemool/nginx_ubuntu

资源隔离

LXC Kernel   namespace
pid net  lpc mnt  uts  user  


cgroup  
cpu  
Docker基础入门学习 / 网络研习社#31 | Ecency