Docker技术入门

获取镜像
从官方镜像获取镜像
docker pull ubuntu:18.04
从第三方仓库获取镜像
docker pull hub.c.163.com/public/ubuntu:18.04
--disable-content-trust:取消镜像的内容校验,默认为真
创建一个容器,在其中运行bash应用
docker run -it ubuntu:18.04 bash

查看镜像信息
使用image命令列出镜像
docker images 或 docker image ls

使用tag命令添加镜像标签
docker tag ubuntu:latest myubuntu:latest

使用inspect命令查看详细信息
docker inspect ubuntu:18.04
获取镜像的Architecture:
docker inspect -f {{".Architecture"}} ubuntu:18.04

使用history命令查看镜像历史
docker history ubuntu:18.04

搜寻镜像
docker search nginx
搜索官方提供的带nginx关键字的镜像
docker search --filter=is-official=true nginx

删除和清理镜像
使用标签删除镜像
docker rmi myubuntu:18.04
如果要强行删除镜像
docker rmi -f myubuntu:18.04
使用镜像id来删除镜像
docker ps -a
docker rm a21c0840213e

清理镜像
删除没有被使用的镜像
docker image prune
删除所有无用镜像
docker image prune -af
-a:删除所有无用镜像
-f:强制删除镜像

创建镜像
基于已有容器创建
docker run it ubuntu:18.04 /bin/bash
容器id为:a21c0840213e
提交镜像
docker commit -m "Add a new file" -a "Docker newbee" a21c0840213e test:0.1
此时查看本地镜像,会发现新创建的镜像已经存在了
docker images

基于本地模版导入
可以使用OpenVz提供的模版来创建
https://blog.csdn.net/studywinwin/article/details/104856656
下载模板 centos-7-x86_64-minimal.tar.gz
http://openvz.mirror.digitalpacific.com.au/template/precreated/centos-7-x86_64-minimal.tar.gz
将模板导入变为镜像
cat centos-7-x86_64-minimal.tar.gz |docker import - centos7-min
将镜像 centos7-min 运行为容器,进入到这个容器
docker run -itd centos7-min bash
docker ps
docker exec -it d7692b0efaad bash
把镜像导出为一个文件
docker save -o 文件名 镜像名
docker save -o peng-centos7.tar centos7-min

基于Dokcerfile创建镜像
https://www.cnblogs.com/andy9468/p/10715633.html

存出和载入镜像
存出镜像
docker save -o ubuntu_18.04.tar ubuntu:18.04
载入镜像
docker load -i ubuntu_18.04.tar
或者
docker load < ubuntu_18.04.tar

上传镜像
用户在Docker Hub注册后可以上传自制的镜像。
先对镜像添加新的标签,再使用docker push命令上传镜像
docker tag test:latest user/test:latest
docker push user/test:latest

操作Docker容器
创建容器
docker create it ubuntu:18.04
启动容器
docker start myubuntu
新建并启动容器
docker run ubuntu /bin/echo "hello world"
启动一个bash终端,允许用户进行交互
docker run -it ubuntu:18.04 /bin/bash
守护态运行
在后台运行容器
docker run -it -d ubuntu:18.04 /bin/bash
查看容器输出
docker logs d7692b0efaad

停止容器
暂停容器
docker run --name=test --rm -it ubuntu bash
docker pause test
docker ps
终止容器
docker stop test
docker stop d7692b0efaad

进入容器
1、attach命令
docker run -itd ubuntu --name=myubuntu
docker attach myubuntu
2、exec命令
docker exec -it d7692b0efaad /bin/bash

删除容器
docker rm -f d7692b0efaad

导入和导出容器
导出容器
docker export -o test_for_run.tar myubuntu
或者
docker export myubuntu > test_for_run.tar
导入容器
docker import test_for_run.tar - test/ubuntu:v1.0

查看容器
查看容器详情
docker container inspect test
查看容器内进程
docker top test
查看统计信息
docker status test

其他容器命令
复制文件data到test容器的tmp路径
docker cp data test:/tmp/
查看变更
docker container diff test
查看端口映射
docker container port test
更新配置
docker update --cpu-quota 1000000 test
docker update --cpu-period 100000 test

容器端口映射
1、映射所有接口地址
docker run -it -d -p 5000:5000 3000:80 training/webapp python app.py
2、映射到指定地址的指定端口
docker run -it -d -p 127.0.0.1:5000:5000 3000:80 training/webapp python app.py
3、映射到指定地址的任意端口
docker run -it -d -p 127.0.0.1::5000 3000:80 training/webapp python app.py
4、指定udp端口
docker run -it -d -p 5000:5000/udp 3000:80 training/webapp python app.py
5、随机映射一个49000-49900端口(-P)
docker run -it -d -P training/webapp python app.py
5、查看映射端口配置
docker port webapp 5000

容器互联
1、创建一个数据库
docker run -d --name=db training/postgres
2、创建一个web容器,并连接到db容器
docker run -d -p 5000:5000 --name=web --link db:db training/webapp python app.py
--link name:alias alise是别名

posted @ 2021-11-23 00:44  micr067  阅读(45)  评论(0编辑  收藏  举报