1.Docker安装及基础命令

  1. yum install wget -y
  2. rm -rf /etc/yum.repos.d/*
  3. wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  4. wget -O /etc/yum.repos.d/epel-7.repo
  5. http://mirrors.aliyun.com/repo/epel-7.repo
  6. wget -O /etc/yum.repos.d/docker-ce.repo
  7. https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
  8. yum install docker-ce -y
  9. systemctl enable docker.service
  10. systemctl start docker.service
  11. 配置阿里云镜像加速器:
  12. //在/etc/docker/daemon.json
  13. 粘贴阿里云加速源
  14. {
  15. "registry-mirrors": ["https://5cooms55.mirror.aliyuncs.com"]
  16. }

可以通过命令docker info 查看docker详细信息。

2.镜像管理

搜索镜像
docker search centos //在dockerhub上面搜索
下载镜像
docker pull nginx:latest //
查看镜像
docker images //查看所有的镜像
-q  只显示id
-a  全部显示
镜像标签
docker tag centos:latest mycentos:v1 //不打标签默认是latest。并且指向的是同一个镜像
镜像详细信息
docker inspect mycentos //镜像的详细信息。
查看各层创建信息
docker history nginx:latest //可以查看各层创建信息
镜像的导入与导出
导出:
docker save centos:latest -o(>) /opt/centos.tar.gz
导入:
docker load -i(<) /opt/centos.tar.gz
镜像的删除
docker rmi centos:latest //也可以通过唯一id来标识
-f //强制删除,在运行中也可以删除,通过信号量SIGKILL
-v 删除容器上的数据卷
-l

3.容器管理

容器是镜像的实例,拉取了镜像就能将镜像运行成容器。

创建容器:

docker create  //通过create创建的容器处于停滞状态,可以用docker start命令来启动它
-d //是否在后台运行容器,默认为否
-i //保持标准输入打开
-P //通过NAT机制将容器标记暴露的端口自动映射到本地主机的临时端口
-p //指定映射到本机端口
-t //分配一个终端
-v //挂载主机上的文件卷到容器内
--rm //容器退出后是否自动删除,不能跟-d同时使用
-e //指定容器内的环境变量?
-h //指定容器内的主机名?
--name //指定容器的别名
--cpu-shares //允许容器使用cpu资源的相对权重,默认一个容器能用满一个核的cpu?
-cpuset-cpus //限制容器能使用那些cpu核心?
-m //限制容器使用的内存,单位可以是b,k,m,g

启动容器:

docker run -it centos:latest bash //通过run命令可以直接创建并启动容器 bash是指定的命令
docker ps //查看运行中的容器
-a //查看所有容器的状态

端口映射:

docker run -d -P nginx //随机端口映射从32768开始映射的
docker run -d -p 90:80 --name nginx-1 nginx:latest //小写P第一个是本机端口。--name参数指定了名称后就可以用指定的名字,不会随机创建一个并且名字不能重复
docker port nginx-1 //查看容器已经映射的端口

后台启动容器:

docker run -d centos tail -f /etc/hosts // 传递命令运行时就会先执行命令 -d参数保持后台启动

停止容器:

docker pause nginx-1 //停止可以通过unpause将状态改变可以通过ps看到状态是paused
docker unpause nginx-1 //重新运行pause的容器
docker stop nginx-1 //终止容器只能通过ps -a查看 并且状态是exit
docker start nginx-1 //重新运行stop的容器

删除容器:

docker rm -31 //通过docker ps 查看id删除
docker rm -f `docker ps -a -q` //将容器全部删除

进入容器:

atach:所有使用此方式进入容器的操作都是同步显示的且exit容器将被关闭。

docker attach 51 //进入id为51的centos且退出后容器被关闭并且操作是同步更新的

exec:执行单次命令与进入容器,退出后容器还在运行

docker -exec -it 54 /bin/bash //执行单次命令进入容器,执行完退出后。容器还在

nsenert可以根据容器的pid进入容器

docker inspect -f "{{.State.Pid}}" 1
12110
nsenter -t 12110 -m -u -i -n -p //namespaceenter

指定容器DNS:

docker run -it --rm --dns 8.8.8.8 centos bash

导入导出容器:

docker export -o /opt/centos.tar 43f //导出一个容器到文件中,不管此时这个容器是否处于运行状态
docker import  /optcentos.tar mycentos:v1 //导入容器后变成镜像没有-i这个参数