用docker的原因:技术储备,无技术债、跟上节奏,提升自身能力,符合当前业务需求,运行快。
docker的缺点:服务器挂了,所有数据消失。
1.先下载docker软件包docker-io
2.启动docker服务/etc/init.d/docker start
3.查看docker镜像库 docker search centos
4.下载镜像 docker pull centos
5.查看镜像 docker images(REPOSITORY=来自哪个仓库TAG=镜像的标签IMAGE ID=镜像唯一的ID CREATED=创建时间SIZEE=镜像大小)
6.删除镜像 docker rmi +ID(如果该镜像已经创建了容器则不能删除)
7.用docker打印hello world:docker run centos /bin /echo 'hello world'
8.查看所有容器的详细数据:docker ps -a
9.重新命名容器运行进入容器 :docker run --name mydocker -it centos /bin/bash(-t:创建的伪终端tty登录进去,-i容器的标准输入打开/bin/bash: 执行命令就是/bin/bash)
10.每次启动只能启动一个容器
11.退出容器exit
12.启动容器:docker start+ID
13.后台运行容器:docker run -d --name mydocker1 centos(-d就是到后台运行)
14.停止容器:docker stop +ID
15.删除容器 docker rm +ID
16.进入容器:docker attach +ID (进去以后再启动以后两个容器同步,退出时,容器关闭,因为关闭了/bin/bash)不推荐使用
17.第二种方法进去:nsenter(安装apt-get install util-linux)。nsenter -t +pid -u -i -n -p
18.获取pid(容器必须启动):docker inspect --format "{{.State.Pid}}" +ID
第三种方法:docker exec -it +ID bash
19.看进入容器的方法cat in.sh
#! /bin/bash
PID=docker inspect --format "{{.State.Pid}}" $1
nsenter -t $PID -u -i -n -p
20.容器退出后自动删除:docker run --rm centos /bin/echo 'hello world'
21.关闭正在运行所有的容器:docker kill $(docker ps -a -q)
22.查看日志:docker log +ID
23.随机端口映射docker run -P nginx
24.指定端口映射docker run -p 81:80(容器) nginx
25.容器的数据卷:docker run -it --name myubuntu -v /data ubuntu 将data数据卷挂载到了物理机(或者直接将某个目录挂载到某个目录下也用-v(-v src:dec))
26.查看数据卷挂载到物理机的位置:docker inspect -f {{.Volumes}} +容器名称
27.指定权限docker -v/data:/opt:ro(只读)(冒号前后都不能有\)
28.让一个容器去访问另一个容器卷(容器):docker run -it --name myubuntu2 --volumes-from myubuntu ubuntu (将myubuntu下的/data挂载到myubuntu2上面)
29.制作镜像docker commit -m"my nginx" +ID +仓库名:v1