基础镜像拉取 docker search centos ---------搜索镜像centos docker pull centos:6.9 --------拉取镜像centos:6.9
镜像基本查看 docker image ls--------------查看所有镜像 docker image ls -q ----------只查看镜像id
标识镜像唯一性的方法:
REPOSITORY:TAG centos:7.5.1804IMAGE ID (sha256:64位的号码,默认只截取12位) 82f3b5f3c58 [root@docker /]# docker image ls --no-trunc ---------------查看sha256全长镜像详细信息查看 [root@docker /]# docker image inspect ubuntu:latest
镜像的导入和导出 [root@docker ~]# docker image save 3556258649b2 >/tmp/ubu.tar [root@docker ~]# docker image rm 3556258649b2 [root@docker ~]# docker image load -i /tmp/ubu.tar
镜像的删除 [root@docker ~]# docker image rm -f 3556258649b2 [root@docker ~]# docker image rm -f $(docker image ls -q)----------删除所有镜像
交互式运行的容器 交互式的容器: 工具类: 开发,测试,临时性的任务() [root@docker /]# docker container run -it --name=“oldguo_cent76” --rm 9f38484d220f -i:交互式 -t:前端,终端 –name:指定容器名字 –rm:退出容器立刻删除该容器 9f38484d220f:镜像id
守护式容器 守护式容器: 网络服务 [root@docker /]# docker run -d -p 8080:80 --name=“oldguo_nginx” nginx:1.14 -d:后台运行 -p:把容器的80端口映射到宿主机的80端口
容器的启动\关闭\连接 交互式的容器的关闭和启动 [root@docker /]# docker container stop nervous_allen [root@docker /]# docker container start -i nervous_allen
守护式容器的关闭和启动 [root@docker /]# docker container stop oldguo_nginx_80 [root@docker /]# docker container start oldguo_nginx_80
容器的连接方法: 子进程的方式登录(在已有工作容器中生成子进程,做登录.可以用于进行容器的调试,退出时也不会影响到当前容器) [root@docker ~]# docker container exec -it nervous_allen /bin/bash
docker容器的网络访问 指定映射(docker 会自动添加一条iptables规则来实现端口映射) -p hostPort:containerPort -p ip:hostPort:containerPort -p ip::containerPort(随机端口:32768-60999) -p hostPort:containerPort/udp -p 81:80 –p 443:443 随机映射 docker run -P 80(随机端口)
容器的其他管理 [root@docker ~]# docker container top ba9143bcaf74-----------显示运行中的容器的进程号 查看日志: docker logs [-t][-f] container id or name
1.镜像类: docker image search pull ls inspect rm save load 2.容器类 docker container run start stop restart kill attach exec ls top logs inspect
Docker的数据卷实现持久化存储 Volume实现宿主机和容器的数据共享 [root@docker opt]# mkdir -p /opt/html [root@docker ~]# docker run -d --name=“nginx_3” -p 83:80 -v /opt/html:/usr/share/nginx/html nginx 把容器的/usr/share/nginx/html 映射给宿主机的/opt/html
数据卷容器: (1)宿主机模拟数据目录 mkdir -p /opt/Volume/a mkdir -p /opt/Volume/b touch /opt/Volume/a/a.txt touch /opt/Volume/b/b.txt
(2)启动数据卷容器 docker run -it --name “nginx_volumes” -v /opt/Volume/a:/opt/a -v /opt/Volume/b:/opt/b centos:6.9 /bin/bash ctrl +p +q让容器在后台运行
(3)使用数据卷容器 docker run -d -p 8085:80 --volumes-from nginx_volumes --name “n8085” nginx docker run -d -p 8086:80 --volumes-from nginx_volumes --name “n8086” nginx 作用: 在集中管理集群中,大批量的容器都需要挂载相同的多个数据卷时,可以采用数卷容器进行统一管理
启动registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry:/var/lib/registry registry
修改配置文件
{ “registry-mirrors”: [“https://68rmyzg7.mirror.aliyuncs.com”], “insecure-registries”: [“10.0.0.100:5000”] }
[root@docker docker]# systemctl restart docker
制作本地镜像并push到
[root@docker ~]# docker tag nginx 10.0.0.100:5000/oldguo/nginx:v1 [root@docker ~]# docker images [root@docker ~]# docker push 10.0.0.100:5000/oldguo/nginx:v1
异地进行pull镜像[root@docker ~]# docker pull 10.0.0.100:5000/oldguo/nginx:v1
本地仓库加安全认证
生成密码: yum install httpd-tools -y mkdir /opt/registry-auth/ -p htpasswd -Bbn oldguo 123 > /opt/registry-auth/htpasswd
重新启动带有秘钥功能的registry容器
docker rm -f $(docker ps -aq) docker run -d -p 5000:5000 -v /opt/registry-auth/:/auth/ -v /opt/registry:/var/lib/registry --name register-auth -e “REGISTRY_AUTH=htpasswd” -e “REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm” -e “REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd” registry
push镜像,需要进行login
[root@oldboy ~]# docker login 10.0.0.100:5000 Username: oldguo Password:
重启docker服务,容器全部退出的解决办法
方法一:docker run --restart=always
方法二:“live-restore”: true docker server配置文件/etc/docker/daemon.json { … … “live-restore”: true }