0
点赞
收藏
分享

微信扫一扫

Docker的常用命令​

Docker的常用命令​

帮助命令

docker version # 显示docker的版本信息

docker info # 显示docker的系统信息,包括镜像和容器数量

docker 命令 --help # 帮助命令

帮助文档的地址:​​https://docs.docker.com/engine/reference/commandline/attach/​​

Docker的常用命令​_docker


Docker的常用命令​_elasticsearch_02



镜像命令

docker images 查看所有本地的主机上的镜像


Docker的常用命令​_docker_03


REPOSITORY: 镜像的仓库源

TAG: 镜像的标签

IMAGE ID: 镜像的id

CREATED: 镜像的创建时间

SIZE: 镜像的大小

可选项:

-a, --all # 列出所有镜像

-q, --quiet #只显示镜像的id



docker search 搜索镜像


Docker的常用命令​_tomcat_04


可选项:

--filter=starts=3000 # 搜索出来的镜像starts大于3000的

Docker的常用命令​_docker_05





docker pull 下载镜像


下载镜像 docker pull 镜像名[:tag]

Docker的常用命令​_elasticsearch_06


[root@server docker]# docker pull mysql

Using default tag: latest如果不写tag,默认就是 latest

latest: Pulling from library/mysql

d121f8d1c412: Pull complete 分层下载,docker image的核心 联合文件系统

f3cebc0b4691: Pull complete

1862755a0b37: Pull complete

489b44f3dbb4: Pull complete

690874f836db: Pull complete

baa8be383ffb: Pull complete

55356608b4ac: Pull complete

dd35ceccb6eb: Pull complete

429b35712b19: Pull complete

162d8291095c: Pull complete

5e500ef7181b: Pull complete

af7528e958b6: Pull complete

Digest: sha256:e1bfe11693ed2052cb3b4e5fa356c65381129e87e38551c6cd6ec532ebe0e808签名

Status: Downloaded newer image for mysql:latest

docker.io/library/mysql:latest真实地址


等价于它

docker pull musql

docker pull docker.io/library/mysql:latest


指定版本下载

Docker的常用命令​_elasticsearch_07



Docker的常用命令​_docker_08



docker rmi 删除镜像


docker rmi f 镜像id #删除指定镜像

docker rmi f 镜像id 镜像id 镜像id #删除多个镜像

docker rmi f $(docker images qa) #删除全部镜像



Docker的常用命令​_docker_09


Docker的常用命令​_docker_10



容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

docker pull centos


新建容器并启动


docker run [可选参数] image

参数说明

--name=name容器名字 tomcat01 tomcat02,用来区分容器

-d 后台方式运行

-it 使用交互方式运行,进入容器查看内容

-p 指定容器的端口 p 8080:8080

主机端口:容器端口

主机端口:容器端口 (常用)

容器端口

容器端口


-P 随机指定端口


测试,启动并进入容器

[root@server ~]# docker run -it centos /bin/bash

[root@6b36923f6790 /]# ls查看容器内的centos,基础版本,很多命令是不完善的

bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var






从容器退回到主机

[root@b7e0ef8ddf0e /]# exit

exit

[root@server /]# ls

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var


列出所有的运行容器


docker ps 命令

列出当前正在运行的容器

-a # 列出当前正在运行的容器+带上历史运行过的容器

-n=? # 显示最近创建的容器

-q # 只显示容器的编号

-l # 显示最近创建的容器

Docker的常用命令​_docker_11



退出容器

exit # 直接停止容器并退出

Ctrl +P + Q # 容器不停止退出


删除容器

docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f

docker rm f $(docker ps -qa) # 删除所有容器

docker ps qa | xargs docker rm #删除所有容器

Docker的常用命令​_docker_12




启动和停止容器的操作

docker start 容器id # 启动容器

docker restart 容器id # 重启容器

docker stop 容器id # 停止当前正在运行的容器

docker kill 容器id # 强制停止当前正在运行的容器

Docker的常用命令​_tomcat_13



常用其他命令

后台启动容器


命令d 镜像名

Docker的常用命令​_docker_14


问题docker ps ,发现 centos 停止了

常见的坑,docker 容器使用后台运行,就必须有个前台进程,docker发现没有前台应用,就会自动停止。

nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了。


查看日志


docker logs t f tail 容器id,没有日志

自己编写一个shell脚本

Docker的常用命令​_elasticsearch_15




显示日志

-t f #显示日志

--tail number #显示日志的条目数

docker logs -f -t --tail 3 fa752bf22263


查看容器中进程信息ps


命令 docker top 容器id

Docker的常用命令​_elasticsearch_16



查看镜像的源数据


命令 docker inspect 容器id

Docker的常用命令​_tomcat_17



进入当前正在运行的容器


我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

命令 docker exec -it 容器id bashshell

测试:

Docker的常用命令​_tomcat_18






方式2

docker attach 容器id

测试:

Docker的常用命令​_elasticsearch_19


[root@server ~]# docker attach fa752bf22263

正在执行当前的代码


docker exec # 进入容器后开启一个新的终端,可以在里面操作(常用)

docker attach # 进入容器正在执行的终端,不会启动新的进程


从容器内拷贝文件到主机


命令 docker cp 容器id:容器内路径 目的主机路径

Docker的常用命令​_tomcat_20


拷贝是一个手动过程,未来我们使用-v 卷的技术,可以实现


小结

Docker的常用命令​_elasticsearch_21



Docker的常用命令​_tomcat_22


Docker的常用命令​_elasticsearch_23


docker命令是十分多的,上面我们学习的那些都是最常用的容器和镜像命令,之后还会学习更多的命令!


作业练习





Docker 安装Nginx




  1. 搜索镜像 search 建议去docker 搜索,可以看到帮助文档
  2. 下载镜像
  3. 运行测试-d # 后台运行
    --name # 给容器命名
    -p # 宿主机端口,容器内部端口
  4. Docker的常用命令​_elasticsearch_24


  5. 进入容器

Docker的常用命令​_docker_25


端口暴露的概念


Docker的常用命令​_docker_26



思考问题:我们每次改动nginx配置文件,都需要进入容器内部,十分的麻烦,要是可以在容器外部提供一个映射路径,在容器外修改文件,容器内部就可以自动修改。需要 v 数据卷。


docker来装一个tomcat


官方使用

docker run -it --rm tomcat:9.0

#我们之前的启动都是后台,停止容器后,容器还是可以查到 docker run -it --rm 一般用来测试,用完就删除

  1. 下载tomcat:9.0docker pull tomcat:9.0
  2. 启动运行docker run -d -p 3355:8080 --name=tomcat01 tomcat:9.0
  3. Docker的常用命令​_tomcat_27


  4. 测试访问没有问题
  5. Docker的常用命令​_tomcat_28


  6. 进入容器

docker exec -it tomcat01 /bin/bash

Docker的常用命令​_elasticsearch_29


发现问题:

  1. linux命令少了
  2. webapps目录下没有内容,阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉
  3. webapps.dist目录下内容拷贝到webapps下可以访问

cp -r webapps.dist/* webapps/

Docker的常用命令​_elasticsearch_30


保证最小可运行环境!


思考问题:我们每次改动nginx配置文件,都需要进入容器内部,十分的麻烦,要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,就自动同步到内部就好了


现在docker容器包含tomcat+网站 ,现在将容器删除就相当于删库跑路,以后docker安装mysql,mysql数据本来是放在mysql数据库里面的,原来删除mysql是删库跑路,现在将容器删除就相当于删库跑路了。这个问题就不科学


部署es(elasticsearch)+kibana


# es暴露的端口很多

# es十分的耗内存

# es的数据一般需要放置到安全目录!挂载

# --net somenetwork ? 网络配置


# 启动 elasticsearch

#docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag(官网查询的

还没有学习到--net somenetwork 这里不要这个参数

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2



启动Linux就卡住了, docker stats 查看cpu状态


测试一下es是否成功

Docker的常用命令​_tomcat_31


增加内存的限制

docker stats

Docker的常用命令​_docker_32



增加内存的限制,修改配置文件e 环境配置修改

docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

查看docker stats

Docker的常用命令​_elasticsearch_33


Docker的常用命令​_tomcat_34



作业:使用kibana连接es? 思考网络如何才能连接过去

Docker的常用命令​_docker_35









可视化

portainer(先用这个)


docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainercker.sock:/var/run/docker.sock --privileged=true portaine


Rancher(CI/CD再用)


什么是portainer?

Docker图形化界面管理工具,提供一个后台面板供我们操作

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainercker.sock:/var/run/docker.sock --privileged=true portaine


访问测试:​​http://ip.8000/​​

通过它来访问

Docker的常用命令​_docker_36


选择本地的

Docker的常用命令​_tomcat_37


进入之后的面板

Docker的常用命令​_tomcat_38


可视化面板平时不会使用,测试玩玩就可以。


举报

相关推荐

0 条评论