本篇文章给大家谈谈[学习记录]Docker基本操作指令,以及docker基本操作命令的知识点,同时本文还将给你拓展Docker-基本操作、docker7:docker基本操作、DockerDay1Do
本篇文章给大家谈谈[学习记录]Docker基本操作指令,以及docker基本操作命令的知识点,同时本文还将给你拓展Docker - 基本操作、docker 7 :docker基本操作、Docker Day 1 Docker基础之常用操作指令、docker 基本操作等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- [学习记录]Docker基本操作指令(docker基本操作命令)
- Docker - 基本操作
- docker 7 :docker基本操作
- Docker Day 1 Docker基础之常用操作指令
- docker 基本操作
[学习记录]Docker基本操作指令(docker基本操作命令)
本文参考了《docker容器与容器云》《第一本docker书》
部分指令解释的不会很详细,以后随着用的多了再慢慢完善。
1.docker info
docker info需要docker守护进程启动后才能正常执行,因此也能用来判断docker守护进程是否已启动。
2.docker run [options] image [command] [arg...]
基于image镜像创建一个容器,并通过指定的选项进行控制
常见选项:
docker run -i -t --name mycontainer ubuntu:latest /bin/bash
-i:使用交互模式,保持输入流开放
-t:使用一个伪终端,在容器内使用一个伪终端实现交互
--name:为容器设定一个名字,否则容器的名字就是系统随机生成的。
ubuntu:latest:镜像名称
/bin/bash:告诉容器启动后运行什么指令
3.docker ps -a
列出所有容器
4.docker start -i container
启动一个容器,可以使用容器ID或容器名称来指定容器
同理还有docker stop/restart
5.docker pull NAME
从仓库中拉取镜像
6.docker push NAME
向仓库上传镜像
7.docker images
列出主机上的镜像
8.docker rm container docker rmi image
删除容器或删除镜像
9.docker attach contain
完完全全的同步
10.docker inspect CONTAINER|IMAGE
查看镜像或容器的详细信息
11.docker commit
讲一个容器制作成一个新的镜像
12.docker events
持续打印实时系统时间
13.docker history IMAGE
打印指定镜像的历史版本
14.docker logs CONTAINER
打印指定容器内部进程的运行日志
15.docker top CONTAINER
查看容器内部的进程,通过pid可以在宿主机上找到该进程的映射
宿主机上ps看到的pid与容器内部ps看到的pid不一样,但是构成映射关系
16.docker stats
显示容器们的统计信息,有点像任务管理器
Docker - 基本操作
- docker images - 查看已下载的镜像
- docker search image_name - 查找镜像库中的镜像,image_name 需替换
- docker pull image_name 下来镜像
- docker ps - 查看正在运行的容器
- docker kill <container_id> - 结束容器,container_id 可以通过 docker ps 显示
- docker cp
- docker cp /local/dump.tar 96f7f14e99ab:/data/
- 将主机 /local/dump.tar 拷贝到容器 96f7f14e99ab/data 目录下
- docker cp 96f7f14e99ab:/data/sql /local/
- 将容器 96f7f14e99ab/data/sql 目录拷贝到主机 /local/ 目录
- docker run -d -i -t <imageID> /bin/bash - 后台启动容器
- docker attach <ContainerID>
- docker commit 44cd67874cde centos:oracle - 保存一个镜像
- docker rmi containerId - 删除一个镜像
- 修改标签:docker tag imagID TGA
- 导出容器快照 docker export containerID > IndigoDocker.tar
- 导入容器快照为镜像 docker import - oracle-workspace < oracle-workspace.tar
- 停止所有的 container,这样才能够删除其中的 images:
- docker stop $(docker ps -a -q)
- 如果想要删除所有 container 的话再加一个指令:
- docker rm $(docker ps -a -q)
- xx
- docker 删除容器后不释放,先 docker save 保留镜像后清理,再执行 rm -rf ~/Library/Containers/com.docker.docker/Data/*
- k8s: https://www.cnblogs.com/liangDream/p/7358847.html
- 下载不了镜像查看可用 IP: dig @114.114.114.114 registry-1.docker.io 添加可用 IP: vi /etc/hosts 修改:54.164.230.151 registry-1.docker.io
常用命令图:
docker 7 :docker基本操作
- 常用的基本操作列表
命令行
解释
创建container
docker container create image_name
创建并运行container 及进入交互终端参数
docker container run -it image_id CMD
-i 交互模式
-t 终端
-it 为分配一个交互式终端
-d 放在后台
-p 端口映射
-v 源地址(宿主机):目标地址(容器)
--name 指定容器的名字
-h 指定容器主机名
--restart=always 每次重启服务,容器跟着重启
创建并运行container 并让其在后台运行,并端口映射
docker container run -p [port in
physical system] : [port in container]
-d [image] [command]
查看正在运行的所有container 信息
docker container ps
查看最后创建的container
docker container ps -l
查看所有container,包括正在运行和已经关闭的
docker conta
iner ps -a
输出指定container 的stdout 信息(用来看log,效果和tail -f 类似,会实时输出。)
docker container logs -f [container]
获取container 指定端口映射关系
docker container port [container] [port]
查看container 进程列表
docker container top [container]
查看container 详细信息
docker container inspect [container]
停止continer
docker container stop [container]
强制停止container
docker container kill [container]
启动一个已经停止的container
docker container start [container]
重启container(若container 处于关闭状态,则直接启动)
docker container restart [container]
删除container
docker container rm [container]
-f 强制参数
- 进入正在运行的容器
-
exec 语法:docker container exec [OPTIONS] CONTAINER [CONTAINER...]
完整信息,请查看:docker exec–help
# exec 会分配一个新的终端(pts)
docker container exec -it 容器id 或容器名字 /bin/bash
#执行进入必须要带参数和COMMAND(如:/bin/bash)
#进入容器可以用容器运行的id, 也可以用容器名称, 其目的都是唯一定位到容器
[root@localhost ~]# docker container exec -it centos /bin/bash (父镜像)
-
attach
语法:docker container attach CONTAINER
#如果Docker容器是使用/bin/bash命令启动的,则可以使用attach
[root@localhost temp]# docker attach t11
-
#exec 与attach 区别
EXEC: 在一个正在运行的容器中执行命令,exec是针对已运行的容器实例进行操作,在已运行的容器中执行命令,不创建和启动新的容器,退出shell不会导致容器停止运行。
Attach: 将本机的标准输入(键盘)、标准输出(屏幕)、错误输出(屏幕)附加到一个运行的容器,也就是说本机的输入直接输到容器中,容器的输出会直接显示在本机的屏幕上,如果退出容器的shell,容器会停止运行。
-
-
容器其他操作
# 关闭所有正在运行的容器
[root@master ~]# docker kill $(docker ps -q)
# 移除所有停止的容器
[root@master ~]# docker rm $(docker ps -a -q)
[root@demo ~]# docker container prune
# 根据状态移除
[root@master ~]# docker rm $(docker ps -q -f 'status=exited' -n 3)
[root@master ~]# docker rm $(docker ps -q -f 'status=exited')
# 根据标签移除
[root@master ~]# docker rm $(docker ps -a | grep Nginx | awk '{print $1}')
Docker Day 1 Docker基础之常用操作指令
[TOC]
GitHub Docker 技术文档:https://github.com/hangyan/docker-resources/blob/master/README_zh.md
如果不想每次运行Docker都使用sudo权限,可以把用户加到Docker组中。
例如: 我的用户名为 user,则添加命令如下;
sudo usermod -aG docker user
重启后生效,再次执行Docker指令,直接输入docker xx ,不需要加 sudo 了。
使用docker ps 下面的命令查看 镜像跟容器
docker ps | awk ''{print $2, $NF}''
Docker 三大基础组件
仓库(Repository)
镜像(Image)
容器(Container)
查询
查看正在运行的容器和所有运行的容器
docker ps
docker ps -a
查看镜像
docker images
docker images -a
停止
停止容器与停止所有正在运行的容器
docker stop 想要停止的容器ID
docker stop $(sudo docker ps -aq )
删除
删除停止运行的容器与所有停止运行的容器
docker rm 想要停止的容器ID
docker rm $(docker ps -a -q) # 删除所有停止运行的容器(使用须小心)。用到了Docker指令嵌套功能
删除镜像
docker rmi 想要停止的镜像ID
docker rmi $(sudo docker images -a -q)
查询镜像
docke search lnmp
下载镜像
docker pull idiswy/lnmp
运行镜像
docker run 命令是用来创建运行Docker容器。它至少需要两个参数,一个是镜像名,一个是容器中需要运行的命令
docker run idiswy/lnmp echo "Hello World"
修改容器
在 learn/tutorial 容器中安装一个ping工具,由于镜像是ubuntu操作系统构建的,所以可以通过在容器中运行 apt-get install -y ping, 一旦ping工具安装完毕,容器会立刻停止运行,但容器中安装的软件包会一直保留。
docker run learn/tutorial apt-get install -y ping
创建新镜像
上面修改容器是已经安装了 ping程序包,想要保存这个变更,以便于以后启动容器时不需要重复安装ping程序包。Docker支持在原有镜像基础上,只提交增量修改部分,形成一个新镜像。以后使用新镜像为模板启动容器,容器中就会存在ping软件包,于是就不需要重复安装了。
首先用docker ps -l 找到安装过ping包的容器ID号,然后把这个容器提交为新镜像,镜像名为 learn/ping , 使用 docker commit 把容器提交为新镜像
docker ps -l
docker commit c61223a01f49 learn/ping
使用新镜像
上面基于容器生成了新的镜像,这个镜像包含ping软件包,这个新镜像可以运行在任何装有Docker引擎的机器上
测试刚才提交的新镜像中安装的ping工具 ping Docker网站
docker run learn/ping ping www.docker.com
查询容器信息
用 docker ps 查看当前运行的容器, 使用docker inspect 可以看到单个容器的详细信息
可以使用容器ID来指定容器,也可以只是用容器的前3 ~ 4 个字符来指定
docker inspect 36964c6571ba
docker inspect 3696
docker 基本操作
最近使用 docker 装在多台机器上安装 clickhouse 集群,学习一下 docker 的基础操作
容器基本操作
1 查看 docker 信息 sudo docker info
2 运行容器 sudo docker run -i -t ubuntu /bin/bash
3 在容器中可以安装软件和我们外面的 linux 机器一样,只是不一样的 ubuntu 和 centos 命令不一样
4 列出容器 sudo docker ps -a (-a 包括没有运行的)
5 启动容器的时候可以给容器命名 sudo docker run --name firstContainername -i -t ubuntu /bin/bash
6 停止容器 sudo docker stop firstContainername (restart)
7 附着进入容器 sudo docker attach firstContainername
8 后台运行容器 sudo docker run -d -i -t ubuntu /bin/bash
9 获取容器日志 sudo docker logs firstContainername
10 持续跟踪容器日志 sudo docker logs -f firstContainername
11 持续跟踪容器日志,并打印时间 sudo docker logs -ft firstContainername
12 可以将日志重定向到宿主机,也有一些日期驱动 sudo docker run --logs-driver="syslog" --name firstContainername -d 使用 syslog 的日志驱动,关于日志驱动百度
13 查看容器内的进程 sudo docker to firstContainername
14 统计容器的内存,网络,cpu,io 等的指标 sudo docker stats firstContainername
15 在后台运行的容器内执行命令 sudo docker exec -d firstContainername touch /etc/new_config_file
16 进入容器 sudo docker exec -it firstContainername /bin/bash
17 停止容易 sudo docker stop firstContainername
18 自动重启 sudo docker run --restart=always --name firstContainername -d ubuntu /bin/sh
--restart=always 无论什么情况停止都会重启,还可以加参数 --restart=on-failure:5 退出代码为非 0 时重启 5 次
19 获取容器信息 sudo docker inspect firstContainername
20 删除容器 sudo docker rm firstContainername
21 删除所有容器 sudo docker rm `sudo docker ps -a -q` -a 返回所有容器 -q 只返回容器的 id
镜像
1 列出所有镜像 sudo docker images
2 拉取镜像 sudo docker pull ubuntu 可以指定版本号,不指定为默认最新的镜像
3 查找镜像 sudo docker search ubuntu
4 注册 docker 账号后就可以使用 docker login 命令进行登录
5 可以拉取一个 centos 镜像 sudo docker pull centos 然后运行 sudo docker run -it --name centosContener centos /bin/bash 进入容器安装 vim yum -y install vim 退出容器 exit 提交容器 sudo docker commit -m"信息" -a "作者" centosContener 镜像用户名 / 仓库名:标签
6 查看镜像的信息 sudo docker inspect 镜像用户名 / 仓库名:标签
7 Dockerfile
FROM centos
RUN yum -y install nginx
EXPOSE 80
sudo docker build -t="镜像用户名 / 仓库名:标签"
8 构建镜像时禁用缓存 sudo docker build --no-cache -t="镜像用户名 / 仓库名:标签"
9 查看 docker 镜像的构建历史 sudo docker history centos 实例 sudo docker history zhaoqinrong/centos:test
10 查看容器端口的映射情况 sudo docker port centosContener 80 会返回映射到宿主机上的端口
11 端口绑定 sudo docker run --name firstContainername -p 80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 8080:80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 127.0.0.1:8080:80 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p 映射 ip: 映射到宿主机的端口:容器端口 -d zhaoqinrong/centos
sudo docker run --name firstContainername -p -d zhaoqinrong/centos 将构建镜像中的 dockerfile 文件中的 EXPOSE 的所有端口公开,并随机绑定到宿主机的端口上
12 Dockerfile 中的 CMD 命令,RUN 命令是在构建中,docker 容器未启动时作用,而 CMD 是在启动后执行的命令
CMD["/bin/bash","-l"]
docker 网络
1 创建一个 docker 网络 sudo docker network create app
2 sudo docker network inspect app 查看新建网络的信息,包含这个网络中的所有容器
3 查看当前系统中的所有网络 sudo docker network ls
4 在新创建的 app 网络中创建容器 sudo docker run -d --net=app --name db zhaoqinrong/centos
5 将已有容器添加到 app 网络 sudo docker network connect app db2
6 退出 app 网络 sudo docker network disconnect app db2
还可以学习一下 docker-compose 和 swarm
感觉 docker 很强大
我们今天的关于[学习记录]Docker基本操作指令和docker基本操作命令的分享就到这里,谢谢您的阅读,如果想了解更多关于Docker - 基本操作、docker 7 :docker基本操作、Docker Day 1 Docker基础之常用操作指令、docker 基本操作的相关信息,可以在本站进行搜索。
本文标签: