docker常用命令
2019-06-09 本文已影响0人
test小星星
镜像常用操作命令
# docker 帮助文档
docker --help
-
pull
拉取镜像
# 拉取jenkins最新版
docker pull jenkins
# 拉取 指定版本
docker pull Jenkins:指定版本号
-
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
-
rmi
删除镜像
docker rmi jenkins:指定版本号
# -f 强制删除(默认如果这个镜像已经有容器在运行无法删除)
docker rmi -f jenkins
# 删除多个
docker rmi -f jenkins nginx
# 删除全部
docker rmi -f $(docker images -qa)
4.tag
对镜像新建一个版本号或者说是新建一个引用
docker tag 镜像名:当前版本号 新镜像名:新的版本号
-
save
(导出)将本地镜像打包成tar包,可以传给其他人使用
docker save jenkins/jenkins(镜像名):版本号 > myjenkins(包名).tar
-
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目录下