docker的常规使用总结

不安装docker下载镜像,或者下载异构镜像,模拟docker客户端
https://pull.7ii.win/

1、启动docker服务

systemctl  start docker

设置开机自启

systemctl  enable docker

2、查看镜像

docker images

--查看下载镜像架构
docker inspect 镜像名字 | grep -i 'architecture'

查看镜像centos-vim

docker images | grep ubuntu-vim

#强制删除全部镜像文件
docker rmi -f $(docker images -aq)  
 

3、查看启动的镜像

docker ps

4、查看全部docker容器

docker ps -a

5、停止docker

docker stop  pid

停止所有docker

docker stop $(docker ps -a -q)

强制删除容器(有启动的服务也可以删除)

docker  rm -f pid

6、启动docker容器

docker  start pid

7、搜索镜像

docker  search  mysql:latest

搜索出100条,做多也只能100

docker search redis --limit 100

搜索不小于3星,描述不截断,镜像名中包含mysql的镜像
docker search --filter=stars=3 --no-trunc mysql

8、启动容器并自己编写一段shell脚本
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo cpf; sleep 1;done"

9、启动服务详解

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  -a, --attach=[]            登录容器(以docker run -d启动的容器)
  -c, --cpu-shares=0         设置容器CPU权重,在CPU共享场景使用
  --cap-add=[]               添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
  --cap-drop=[]              删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
  --cidfile=""               运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
  --cpuset=""                设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
  -d, --detach=false         指定容器运行于前台还是后台 
  --device=[]                添加主机设备给容器,相当于设备直通
  --dns=[]                   指定容器的dns服务器
  --dns-search=[]            指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
  -e, --env=[]               指定环境变量,容器中可以使用该环境变量
  --entrypoint=""            覆盖image的入口点
  --env-file=[]              指定环境变量文件,文件格式为每行一个环境变量
  --expose=[]                指定容器暴露的端口,即修改镜像的暴露端口
  -h, --hostname=""          指定容器的主机名
  -i, --interactive=false    打开STDIN,用于控制台交互
  --link=[]                    指定容器间的关联,使用其他容器的IP、env等信息
  --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc时使用
  -m, --memory=""            指定容器的内存上限
  --name=""                  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
  --net="bridge"             容器网络设置,待详述
  -P, --publish-all=false   指定容器暴露的端口,待详述
  -p, --publish=[]            指定容器暴露的端口,待详述
  --privileged=false        指定容器是否为特权容器,特权容器拥有所有的capabilities
  --restart=always         指定容器停止后的重启策略,待详述
  --rm=false                   指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
  --sig-proxy=true           设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
  -t, --tty=false            分配tty设备,该可以支持终端登录
  -u, --user=""              指定容器的用户
  -v, --volume=[]            给容器挂载存储卷,挂载到容器的某个目录 例如: -v 宿主机目录:容器目录
  --volumes-from=[]          给容器挂载其他容器上的卷,挂载到容器的某个目录
  -w, --workdir=""           指定容器的工作目录
  
--restart参数=
    no
        默认策略,在容器退出时不重启容器
    on-failure
        在容器非正常退出时(退出状态非0),才会重启容器
    on-failure:3
        在容器非正常退出时重启容器,最多重启3次
    always
        在容器退出时总是重启容器
#开机自启
    unless-stopped
        在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
# 一般推荐使用always参数
    --restart=always

示例: 启动一个容器,容器端口80映射到宿主机8787端口,停止后自动删除容器,把宿主当前执行命令pwd的目录挂载到容器/home/paddle

docker run -p 8787:80  --rm --env USER_PASSWD="123456" -v $PWD:/home/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2

10、更新容器

将正在运行的容器设为自启动    
# docker update --restart=always 容器名或容器ID
docker update --restart=always <CONTAINER ID>
# 例如将tomcat设为自启动
docker update --restart=always tomcat

将自启动的容器取消自启动
# docker update --restart=no 容器名或容器ID
docker update --restart=no <CONTAINER ID>
# 例如取消tomcat的自启动
docker update --restart=no tomcat

11、提交镜像

docker commit 0bd244689ed2 ubuntu-vim

OPTIONS说明

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

将容器0bd244689ed2保存为新的镜像,并添加提交人信息和说明信息。

docker commit -a "runoob.com" -m "my apache" 0bd244689ed2 mymysql:v1


12、查看本地镜像的详细信息

docker inspect ubuntu-vim:afcaf46e8305

13、拉取镜像指定架构(amd、arm、arm64、x86、x64)

先上:dockerhub搜素 

onlyoffice/documentserver Tags | Docker Hub

docker pull --platform=arm paddlepaddle/paddle

docker pull --platform=linux/arm64 onlyoffice/documentserver:7.5

如果不支持--platform参数,需要操作docker配置文件

1、vi /etc/docker/daemon.json

进行添加experimental参数,如还有其他配置,合并

{
  "experimental": true
}

2、systemctl daemon-reload
3、systemctl  stop docker 

4、system  start  docker

5、在进行拉取

14、配置阿里镜像加速

容器镜像服务 (aliyun.com)

15、导入导出镜像

(1)save和load命令一组(使用save导出镜像就要使用load导入)

导出

docker save [options] images [images...]

docker save -o nginx.tar nginx:latest 

docker save > nginx.tar nginx:latest

导入

docker load -i nginx.tar

docker load < nginx.tar

(2)export和import命令(使用export导出镜像就要使用import导入)
export命令

docker export [options] container
示例

docker export -o xxx.tar base_mes_1.1
导出为tar

docker export  ID or  Name > /home/export.tar
1
其中-o表示输出到文件,xxx.tar为目标文件,base_mes_1.1是源容器名(name)

import命令

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
1
OPTIONS说明:

-c :应用docker 指令创建镜像;
-m :提交时的说明文字;
示例

docker import xxx.tar base_mes:1.1

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

finbarr45

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值