IT序号网

docker常用命令知识解答

qq123 2021年09月05日 程序员 165 0
本文章主要介绍了docker常用命令,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

docker官方镜像地址

镜像常用操作命令

# docker 帮助文档 
docker  --help 
  1. pull拉取镜像
# 拉取jenkins最新版 
docker pull jenkins   
# 拉取 指定版本 
docker pull Jenkins:指定版本号 
  1. images列出当前主机所有的docker镜像
# 列出所有镜像 
docker images 
# 列出所有镜像(含中间镜像层) 
docker images -a  
# 只列出镜像id 
docker images -q 
# 显示全镜像的摘要信息 
docker images --digests 
# 显示完整的镜像id 
docker images --no-truec  

2.1 search 搜索镜像

# 搜索nginx镜像 
docker search nginx 
# 过滤 stars 大于3的nginx镜像 
docker search nginx --filter=stars=3 
# 只列出automated build类型的镜像 
docker search nagin --automated 
  1. rmi删除镜像
docker rmi jenkins:指定版本号 
# -f 强制删除(默认如果这个镜像已经有容器在运行无法删除) 
docker rmi -f jenkins  
# 删除多个 
docker rmi -f jenkins nginx 
# 删除全部 
docker rmi -f $(docker  images -qa) 

4.tag对镜像新建一个版本号或者说是新建一个引用

docker tag 镜像名:当前版本号 新镜像名:新的版本号 
  1. save (导出)将本地镜像打包成tar包,可以传给其他人使用
docker save jenkins/jenkins(镜像名):版本号 > myjenkins(包名).tar 
  1. load (导入)将生成的tar包安装到docker
docker load < myjenkins.tar 

容器命令

run 创建并启动docker容器

  • 常用参数
  • -d 在后台启动,就算关闭窗口也不会终止进程 。
  • --name 自定义启动容器名称。
  • -p 将宿主机的端口号映射到容器的端口.意思就说当你访问宿主机的8000端口时,会转发到容器的8080端口中。
  • -v 挂载,将宿主机到某个路径挂载到容器存放数据的某个路径上,这样就算容器挂了数据也不会丢失。 这里有个坑如果宿主机挂载的路径有权限要求,可以执行 sudo chown -R 1000:1000 /home/docker/jenkins(被挂载的宿主机路径)
  • --env-e 传递环境变量,可以理解为启动容器时给容器传的参数,用来配置容器,具体配置项可以到docker-hub官方镜像文档查看
  • --network 设置网络模式,默认是网络端口映射模式
    • --network host 使用宿主机的网络,不用使用-p映射端口了。如果本地容器过多都使用这种模式会有广播风暴到风险
  • --link 将两个容器连接到一起,实现互相通信
  • -i 以交互模式运行容器,通常与-t同时使用
  • -t 为容器重新分配一个伪终端(可输入命令的控制台)
docker run -d --name testjenkins(指定容器名称) jenkins(启动的镜像) -p 8000:8080  
-v /your/home:/var/jenkins_home 
# --network 设置网络模式,默认是网络端口映射模式 
# --network host 使用宿主机的网络,不用使用-p映射端口了。 
docker run -d --name testjenkins(指定名称) --network host jenkins(启动的镜像)  
# --link 
docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes -e MARIADB_USER=bn_testlink -e MARIADB_DATABASE=bitnami_testlink -v /home/gaofei/test/mysql:/var/lib/mysql -p 8088:3306 bitnami/mariadb:latest 
docker run -d --name testlink -p 8099:80 -p 444:443 -e ALLOW_EMPTY_PASSWORD=yes -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --link mariadb bitnami/testlink:latest 
 
 

ps 查看当前docker启动的容器信息

docker ps -s -a -q 
# -s 启动容器占用磁盘空间的大小和镜像的大小 
# -a 查看所有容器包括未启动的容器 
# -q 只显示容器id 

rm 删除容器

docker rm testjenkins(容器名称) 
# 注意需要将容器停止才能删除 
# 参数-f 强制删除 这样可以不用停止容器也可以删除 
 
# 删除全部容器 
docker rm -f $(docker ps -qa) 

stop结束容器

docker stop testjenkins 

start启动容器

docker start testjenkins 

kill 杀死容器

docker kill testjenkins(容器名称) 

logs查看docker启动容器的日志

docker logs -tf testjenkins(容器名称) 
# -f 持续的实时的跟踪日志 相当于liunx的tail -f 查看日志 
# -t 打印时间 

top 查看容器内运行的行程号

docker top 容器id 

inspect 查看容器的配置信息

docker inspect testjenkins(容器名称) 

info查看docker的基本信息

docker info 

与容器交互命令

exec 登陆到某个容器内,在容器里面运行命令。相当于远程连接某个虚拟机上

# 直接在宿主机执行容器内的命令 
docker exec -t "容器id" 容器内部命令 
docker exec -t "j2h1kj3h21" ls -l /tmp 
# 进入到容器内部执行命令 
docker exec -it testjenkins(容器名称) bash 
# it 启动一个新的虚拟交互shell窗口 
# bash 使用bash交互模式 

exit 退出容器

exit 

cp 将宿主机的文件拷贝到容器内,或者将容器内的文件拷贝到宿主机

# 将宿主机的文件拷贝到容器 
docker cp 宿主机文件路径 容器名称:复制到容器内的路径 
# 实例 
docker /home/a.txt testjenkins:/root/  # 复制到容器的root目录下 
# 将容器的文件复制到宿主机 
docker cp 容器名称:文件路径 宿主机路径 
docker cp testjenkins:/root/a.txt /home/  # 复制到宿主机的home目录下 

发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Display:flex 布局知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。