首页 > 其他分享 >docker命令

docker命令

时间:2023-05-09 14:56:13浏览次数:38  
标签:容器 compose run -- 命令 镜像 docker

环境查看 系统内核 3.10 以上 :uname -r Cat /etc/os-release

安装docker社区版:yum install docker-ce

启动docker:systemctl start docker

基本命令:

docker version #显示 docker 版本信息
docker info #显示 docker 的系统信息,包括镜像和容器数量 、查看仓库地址
docker comm --help #帮助命令

用doker部署一个软件,如部署nginx:

1)搜索镜像:docker search nginx \or https://hub.docker.com/_/nginx )
docker search mysql --filter=STARS=500 #搜索出来的镜像 STARS 大于 500

2)拉取镜像(下载):docker pull nginx == docker.io/library/mysql:latest
Docker pull mysql:5.7 #下载指定版本
3)查看本机是否有此镜像:docker images
4)启动容器
5)验证nginx是否安装成功:curl localhost:3344

查看镜像元数据:docker inspect 容器id

删除镜像:

docker rmi -f 87eca374c0ed #删除镜像-f 指定 id
docker rmi -f $(docker images -q) #删除所有查询到的 id,删除全部容器
docker rmi -f 镜像 id 镜像 id 镜像 id #删除多个镜像

新建并启动容器

docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口: -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root用户的密码
--network=huicenetwork:设置专属网络环境

可以 docker run 可直接下载镜像并启动容器:
默认容器启动之后是在后台运行,停止了容器之后,容器还存在,还可以查到,加上--rm 停止后直接删除,可以查看 docker run --help
# docker run --help|grep rm
docker run -it --rm tomcat:9.0
运行容器:docker run -d -p 3355:8080 --name tomcat01 tomcat(--name是将tomcat镜像对应的容器名改为tomcat01)
docker run -d --name nginx01 -p 3344:80 nginx (3344是主机防火墙,80是docker里的nginx防火墙)
验证nginx是否安装成功:curl localhost:3344

新建并启动容器:
docker run -d centos
#后台启动 centos,docker ps,发现 centos 停止了 常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止
docker run -it centos /bin/bash(可先下载centos镜像,若没下载此命令会自动下载,然后启动容器,执行完此命令后也会进入此容器)
查看容器下的目录文件:ls(先进入容器,再输入ls / 可看centos的根目录)

备注:可以先不映射本地ip端口、文件,先启动运行容器,然后映射容器中文件到本地文件夹,再删除容器 后,重新启动并运行容器(这次运行时加上映射的端口和文件等)

1、启动 docker run --name perfree -d -p 8080:8080 perfree/perfree:v2.3.0
//映射docker项目的resources文件夹和config文件夹到刚刚创建的文件夹中
2、将/config从perfree容器下拷贝到宿主机/data/prefree目录下
docker cp perfree:/resources/ /data/prefree
docker cp perfree:/config/ /data/prefree
3、停止并删除容器
docker stop perfree 
docker rm perfree 
4、
挂载资源启动(这样后期更新所有的数据都会在宿主机内,不会造成文件丢失)
docker run -v /data/perfree/config:/config -v /data/perfree/resources:/resources --name perfree -d -p 7080:8080 perfree/perfree:v3.1.1
命令解析:docker run -v [宿主机目录]/config:/config -v [宿主机目录]/resources:/resources --name perfree -d -p 宿主机端口:8080 perfree/perfree

查看容器:

docker ps #列出当前正在运行的容器
docker ps -a #列出当前正在运行的容器和历史运行过的容器
docker ps -n=9 #列出最近运行的容器
docker ps -a #只显示容器的编号

启动和停止容器的操作:

docker start 容器 id
docker restart 容器 id
docker stop 容器 id
docker kill 容器 id

进入容器:docker exec -it tomcat01 /bin/bash(进入容器后开启一个新的终端,可以在里面操作,注:要先确定容器已启动)

docker attach 容器 id((进入的是正在运行的容器,而不是开启新的窗口)

退出容器:
1、容器里面关闭容器,这种情况退出方式多样,存在着是否保存他的运行情况,Ctrl+P和Ctrl+Q分别按,可以退出容器,让容器仍运行,
快捷键Ctrl+D和命令exist退出容器,不运行

 

1.docker run :只有在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器的时候,只需要使用命令 docker start 就可以。 docker run 相当于执行了两步操作:将镜像(Image)放到容器(Container)中,这一步过程叫做 docker create,然后将容器启动, 使之变成运行时容器(docker start)。
2.docker start作用是:重新启动已经存在的容器。也就是说,如果使用这个命令,我们必须先要知道这个容器的 ID、或者这个容器的 名字,我们可以使用 docker ps -a命令找到这个容器的信息

docker run :根据镜像创建一个容器并运行一个命令,操作的对象是 镜像;
docker exec :在运行的容器中执行命令,操作的对象是 容器。

删除容器:

docker rm 容器 id #删除指定的容器,不能删除正在运行的容器,强制删除 rm -f
docker rm -f $(docker ps -aq) #删除指定容器
docker ps -a -q|xargs docker rm #删除所有容器

看日志(在容器外面,本机上执行):

docker logs -ftn 10
docker logs
docker logs -f -t --tail 10 a3e3706e3210
docker logs -f -t -n 10 a3e3706e3210

从容器内拷贝文件到主机上(在主机上执行命令):

docker cp read escape sequence容器 id:容器内路径 目的主机路径
docker cp asdihfwle1:z.python /

从主机拷贝程序到 alfresco 容器:docker cp mysql-bin.jar \alfresco:/usr/local/tomcat/lib/

 

#自己编写 shell 脚本,让他一直运行,“while true;do echo test zsw;sleep 1;done”
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo zswdtest;sleep 1;done" 注意要是小写的

查看应用 cpu 和内存网络 IO 使用率:docker stats(在容器外面,本机上执行)
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。

查看容器中进程信息 ps: docker top 容器 id

 

挂载(容器数据卷):

Docker 容器中产生的数据,同步到本地! 这就是卷技术!目录的挂载,将我们容器内的目录,挂载到 Linux 上面!
容器关闭的时候,在主机创建的文件,也会同步到容器 好处:以后修改只需要在本地修改即可,容器内会自动同步!

1、指定路径挂载
直接使用命令来挂载 -v: docker run -it -v 主机目录:容器内目录 -p 主机端口:容器内端口 镜像名 /bin/bash
举例: docker run -it -v /home/test:/home centos /bin/bash #把虚拟机 home 目录,挂载到当前主机/home/test 目录下,此时改动一个目录, 另一个目录内容也跟着改动
查看挂载是否成功:docker inspect 容器 id

将tomcat02镜像挂载后,1容器名称怎么是个id,2容器里怎么和镜像原来里面的目录不一样呢。?()

挂载到本地路径下:
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

关闭防火墙和 selinux
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config 修改配置文件 SELINUX=disabled 删除 mysql 后挂载内容仍然存在

2、匿名挂载:
-v 只写了容器内的路径:docker run -d -P --name nginx01 -v /etc/nginx nginx
查看所有卷的情况 docker volume ls

3、具名挂载
-v 卷名:容器内路径
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
查看挂载路径 docker volume inspect juming-nginx

所有docker容器内的卷没有指定目录的情况下都在:/var/lib/docker/volumes/xxx/_data

多个容器之间数据共享(--volumes-from):

启动 3 个容器,通过我们刚才自己写的镜像启动(docker01父容器)
docker run -it --name docker01 zsw/centos
docker run -it --name docker02 --volumes-from docker01 zsw/centos:latest
docker run -it --name docker03 --volumes-from docker01 zsw/centos:latest
修改一个容器里面的 volume 其它都变动,

Docker 的卷标 (volumes) 是 独立的文件系统。它们并非必须连接到特定的容器上。

1. 查看所有卷标
docker volume ls
2. 查看批量的卷标
$ docker volume ls | grep mysql
local vagrant_mysql
3. 查看具体的 volume 对应的真实地址
$ docker volume inspect vagrant_mysql
[
{
"Name": "vagrant_mysql",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/vagrant_mysql/_data"
}
]

 

docker-compose 单机部署项目!:docker-compose up -d wordpress.yml
docker stack 部署,集群部署!:docker stack deploy wordpress.yml


docker-compose.yml用于描述docker容器之间的依赖关系,可以一键对多个服务进行启停操作


docker-compose进行部署项目:

1、创建要部署项目的存放目录,如在root下创建个test目录:mkdir /root/test/
2、将网盘文件 docker-compose.yml 上传到/root/test/目录下
3、构建新镜像:docker-compose build
docker-compose的工作流程就是:当你改变本地代码之后,先执行docker-compose build构建新的镜像,
然后执行docker-compose up -d取代运行中的容器
4、运行新镜像:容器初始化,在/root/test/目录下执行: docker-compose up -d
5、查看运行起来的容器:docker ps

有时间了照着此文档操作一遍---------参考地址:https://blog.51cto.com/u_12528551/5900320
https://blog.csdn.net/s619782146/article/details/125906199

网盘下载配置文件:conf.zip
上传至 Linux 目录:/mydata/services/web/nginx
解压缩配置文件 unzip conf.zip
) 网盘下载项目文件:fecshop.zip 并上传至 Linux 目录:/mydata/app/
2) 解压缩项目文件 unzip fecshop.zip
设置权限
docker-compose exec php bash
cd /www/web/fecshop
chmod +x init
./init
exit


重启:

docker-compose restart
docker-compose start #启动
docker-compose stop #停止
启动:docker-compose up -d wordpress.yml
停止:docker-compose down/CTRL+C
docker-compose ps

docker compose管理多个容器
1.Dockerfile 应用打包为镜像
2.Docker-compose yaml 文件(有3层)(定义整个服务,需要的环境,web\redis)完整的服务!
第一层 version
第二层 service
第三层其它配置
version: "3.9" #版本
services: #服务
服务 1:web #服务配置
images : 使用镜像
build:
depends_on(依赖关系-启动顺序,和其他容器链接 使用这里个化重点
-db
-redis
network
服务 2:redis
服务 3:
#其它配置
volumes: - 映射宿主主机文件路径:容器主机文件路径
networks:
configs:
ports: - 映射宿主主机端口:容器端口
links: 容器别名
restart: no是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动。 如果退出代码指示出现故障错误,则 on-failure将重新启动容器

 

标签:容器,compose,run,--,命令,镜像,docker
From: https://www.cnblogs.com/fanf/p/17385013.html

相关文章

  • 在Windows上安装Docker
    一、前言跟着文档来,慢慢摸索,顺便记录一下在安装过程中遇到的问题,方便日后供自己查看二、DockerDesktop下载Docker官方点击Downloadandinistall 点击DockerDesktopforWindows 再次点击DockerDesktopforWindows 下载完成后执行DockerDesktopinstaller.ex......
  • jq命令
    jq命令https://www.cnblogs.com/kevingrace/p/7565371.htmlhttps://blog.csdn.net/qq_26545503/article/details/121962156 一、jq简介JSON是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于理解。虽然它以JavaScript开头,而且主要用于在服务器和......
  • Docker安装Openwrt开启旁路由模式
    准备:HK1BOX一个或其他linux设备安装好Armbian或Debian或Ubuntu或其他安装好Docker和Portainer管理面板并更换国内源  (不会的看我之前的教学视频)原作者Github地址:https://github.com/SuLingGG/OpenWrt-Docker设置网络:通过SSH登录到你的Linux设备,把网卡混杂模式打开 ......
  • 【笔记】docker安装
    step1、检查系统版本是否符合要求Docker要求CentOS系统的内核版本高于3.10Docker要求CentOS系统的内核版本高于3.10查看你当前的内核版本uname-r查看操作系统版本cat/etc/redhat-releasestep2、卸载旧版本(如果安装过旧版本的话,没有旧版本可以省略此步骤)yumr......
  • Docker 使用教程
    Docker使用教程Docker的简介和安装Docker是一个应用打包、分发、部署的工具。你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。Docker为什么比虚拟机快?Docker有着比......
  • 常用的DOS命令与快捷键
    #盘符D:#查看目录下的所有文件dir#切换到其他盘符的目录cd/dD:#查看电脑IPipconfig#ping命令(测试网络是否连通)#文件相关操作创建目录md目录名删除目录rd目录名创建文件cd>文件名删除文件del文件名#打开应用notepad创建文档calc......
  • 如何修改 docker 默认网段(bridge、docker0 的网段)
    1、打开修改daemon.json文件进行修改vi/etc/docker/daemon.json增加bip配置,示例如下:{"bip":"192.168.1.1/24"}注意,此处必须填写一个有效ip地址,否则会导致docker无法启动,提示:failedtoallocategatewayAddressalreadyinuse参考:https://blog.csdn.net/h......
  • docker安装青龙面板
     1.1、一键脚本安装wget-qhttps://raw.githubusercontents.com/Oreomeow/VIP/main/Scripts/sh/ql.sh-Oql.sh&&bashql.sh脚本代码:#!/usr/bin/envbash#shellcheckdisable=SC2181clearecho-e"\e[36m▄▄▄▄██▄▄......
  • 《nodejs跨栏》命令篇
    npm查看一个包的版本参考链接:https://segmentfault.com/a/1190000022694959注意:CMD命令要以管理员模式启动。#查看npm服务器上所有的jquery版本:dubai@DESKTOP-UFFVH6LMINGW64/$npmviewjqueryversions#查看npm服务器上jquery最新版本:dubai@DESKTOP-UFFVH6LMINGW6......
  • 使用Docker及安装部分软件
    一、前言最近在银行内部部署项目的时候,发现GCC版本过期,是4.5的版本,导致了Nginx和Redis都无法进行make编译安装,但是GCC版本又因为无法连接到外网,无法进行升级。那么想到了使用Docker容器化技术来进行管理。其实之前也使用过Docker,但是这次决定将其系统性的整理一下。下面章节将分......