Docker使用总结

一、Docker容器

1、创建容器
  • create 新建容器
docker@default:~$ docker create -it ubuntu
c62f0a2b48e65831cf6b0875826a043f1e301603bb83733b9cea8852b848a015

docker@default:~$ docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                        PORTS                                        NAMES
c62f0a2b48e6        ubuntu               "/bin/bash"              15 seconds ago      Created                                                                    elastic_vaughan

  • start 启动容器
docker@default:~$ docker start c62f0a2b48e6             
c62f0a2b48e6

# start 启动容器,可以根据容器ID或者容器名启动
  • run 新建并启动容器
docker@default:~$ docker run ubuntu /bin/echo 'Hello World'
Hello World
  • exec -i -t 启动一个bash终端,允许用户交互
docker@default:~$ docker exec -it c62f0a2b48e6 /bin/bash
root@c62f0a2b48e6:/# 

# 进入终端,需要该容器已经启动,即docker ps 能够查询到。
# -t选项让Docker分配一个伪终端并绑定到容器标准输入上
# -i则让容器的标准输入保持打开
  • 守护状态运行-d
docker@default:~$ docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
926b3891632458cf389cb6a654167bcf318aac74cae162038b1faf3577365f94

docker@default:~$ docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
926b38916324        ubuntu              "/bin/sh -c 'while t…"   8 seconds ago       Up 8 seconds                                                     practical_wozniak

# -c 表示容器执行的CONMMAND命令
# 可以结合容器ID,使用logs命令,查看信息输出
docker@default:~$ docker logs 926b38916324
hello world
hello world
hello world
hello world
hello world
hello world

2、终止容器
  • stop 停止容器
# 通过容器ID停止容器
docker@default:~$ docker stop c62f0a2b48e6
c62f0a2b48e6

# docker ps -a 可查看所有状态的容器,启动的,停止的
docker@default:~$ docker ps -a 
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                           PORTS                                        NAMES
926b38916324        ubuntu               "/bin/sh -c 'while t…"   11 minutes ago      Exited (137) 9 minutes ago                                                    practical_wozniak
287ebd6ff46e        ubuntu               "/bin/echo 'Hello Wo…"   20 minutes ago      Exited (0) 20 minutes ago                                                     jovial_carson
c62f0a2b48e6        ubuntu               "/bin/bash"              23 minutes ago      Exited (0) 4 minutes ago                                                      elastic_vaughan

3、删除容器
  • 单个删除容器
docker@default:~$ docker rm 926b38916324
926b38916324
  • 批量删除容器
# 1、通过grep关键字匹配,删除
docker@default:~$ docker rm `docker ps -a|grep Exited|awk '{print $1}'`

# 2、通过xargs
docker@default:~$ docker ps -a|grep Exited|awk '{print $1}'|xargs docker rm

# 3、删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
docker@default:~$ docker rm $(sudo docker ps -a -q)

# 4、根据容器的状态,删除Exited状态的容器
docker@default:~$ docker rm $(sudo docker ps -qf status=exited)

# 5、docker containers prune 命令,删除孤立的容器
docker@default:~$ docker container prune

二、私有仓库

1、创建私有仓库
# 1、创建一个私有仓库,并通过-v 指定镜像文件存放本地路径
docker@default:~$ docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry --name my_registry registry                   
00b2b059f9eec22b37e097c07d2dd6d2fe55f263be2538a9b473a940bbe8bfa8

docker@default:~$ docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
00b2b059f9ee        registry            "/entrypoint.sh /etc…"   2 seconds ago       Up 2 seconds        0.0.0.0:5000->5000/tcp                       my_registry

2、连接私有仓库

\qquad Chrome访问http://192.168.99.100:5000/v2/ ,获得一个空的JSON字符串

{}
3、管理私有仓库镜像
# 1、使用tag命令将ubuntu的镜像标记为test镜像
# docker tag image[:tag] [registryhost/][username/]Name[:tag]
docker@default:~$ docker tag ubuntu:latest 192.168.99.100:5000/test
docker@default:~$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ubuntu                     latest              94e814e2efa8        13 days ago         88.9MB
192.168.99.100:5000/test   latest              94e814e2efa8        13 days ago         88.9MB

# 2、使用docker push 上传镜像
docker@default:~$ docker push 192.168.99.100:5000/test
The push refers to repository [192.168.99.100:5000/test]
b57c79f4a9f3: Pushed 
d60e01b37e74: Pushed 
e45cfbc98a50: Pushed 
762d8e1a6054: Pushed 
latest: digest: sha256:f2557f94cac1cc4509d0483cb6e302da841ecd6f82eb2e91dc7ba6cfd0c580ab size: 1150
4、查看镜像

\qquad 使用Chrome访问http://192.168.99.100:5000/v2/_catalog,返回JSON字符串

{"repositories":["test"]}
5、测试镜像
# 1、删除标记的镜像
docker@default:~$ docker rmi 192.168.99.100:5000/test
Untagged: 192.168.99.100:5000/test:latest
Untagged: 192.168.99.100:5000/test@sha256:f2557f94cac1cc4509d0483cb6e302da841ecd6f82eb2e91dc7ba6cfd0c580ab

docker@default:~$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
ubuntu               latest              94e814e2efa8        13 days ago         88.9MB

# 2、pull image
docker@default:~$ docker pull 192.168.99.100:5000/test
Using default tag: latest
latest: Pulling from test
Digest: sha256:f2557f94cac1cc4509d0483cb6e302da841ecd6f82eb2e91dc7ba6cfd0c580ab
Status: Downloaded newer image for 192.168.99.100:5000/test:latest

docker@default:~$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
192.168.99.100:5000/test   latest              94e814e2efa8        13 days ago         88.9MB
ubuntu                     latest              94e814e2efa8        13 days ago         88.9MB

# 3、更换标签
docker@default:~$ docker tag 192.168.99.100:5000/test ubuntu:14.xx
docker@default:~$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
192.168.99.100:5000/test   latest              94e814e2efa8        13 days ago         88.9MB
ubuntu                     14.xx               94e814e2efa8        13 days ago         88.9MB
ubuntu                     latest              94e814e2efa8        13 days ago         88.9MB

三、Docker 命令总结

参照文档

1、docker network
# docker network 是建立容器之间的网络的
# 1、docker network ls 
# 默认的网络有3类
docker@default:~$ docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE
71dc70d3c422        bridge              bridge              local
810ebe7af5ed        host                host                local
83c53a6541d3        none                null                local

# 2、docker network create
# 默认创建网络类型是bridge
docker@default:~$ docker network create huangfei
d3c01b2a45672f46fb6fc9f1224256325cfda72657324e40cc1325db46e14609

docker@default:~$ docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE
71dc70d3c422        bridge              bridge              local
810ebe7af5ed        host                host                local
d3c01b2a4567        huangfei            bridge              local
83c53a6541d3        none                null                local

# 3、将容器加入已有的网络
# docker network connect [网络名] [容器名/容器ID]
docker@default:~$ docker network connect huangfei my_container

# 4、删除网络
docker@default:~$ docker network rm huangfei
huangfei

四、Docker环境相关问题

1、windows 下搭建docker,更改docker镜像

\qquad 在linux下,通过修改/etc/docker/daemon.json文件,增加

{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["192.168.99.100:5000"]
}

registry-mirrors:下载镜像的地址
insecure-registries:私有仓库的地址和端口

\qquad 而使用window toolbox搭建的docker环境,需要修改/var/lib/boot2docker/profile文件,
\qquad 此时,我们在 --label provider=virtualbox的下一行添加下述代码

--registry-mirrors https://registry.docker-cn.com
--insecure-registry 192.168.99.100:5000

\qquad 重写启动docker,在linux下,systemctl restart docker,在windows下,/etc/init.d/docker restart

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值