当前位置 : 主页 > 操作系统 > centos >

docker常用操作

来源:互联网 收集:自由互联 发布时间:2023-08-21
一.查看docker中的共享目录 方式一:查看所有容器的信息,从中筛选 [root@kazihuo ~]# docker inspect volume 方式二:有些容器内,卷映射的map标签为mounts,故以下命令查看 [root@kazihuo ~]# docker

一.查看docker中的共享目录

方式一:查看所有容器的信息,从中筛选

[root@kazihuo ~]# docker inspect volume

方式二:有些容器内,卷映射的map标签为mounts,故以下命令查看

[root@kazihuo ~]# docker inspect -f {{.Mounts}} volume
               或 docker inspect -f {{.Volumes}} volume   #volume指容器名称

二.配置docker下载加速地址

1)编辑docker配置文件

vim /etc/docker/daemon.json

2)增加拉取镜像地址

{
    "registry-mirrors":["https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}

3)重启docker服务

service docker restart

三 查看宿主机上所有docker容器对应IP地址

1.docker命令启动的容器,查看IP方法

docker inspect -f '{{.Name}} => {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

2.若是通过docker-compose命令启动的容器,那么查询容器的IP地址

[root@localhost ~]# docker inspect --format='{{.Name}} => {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

四 查看容器日志

docker logs 容器名
docker logs -f -t --tail 100

五 进入容器

docker exec -it 容器名 /bin/bash

六 查看容器环境变量

docker exec -it 容器名 env

七 使用ENV指令可以用于为docker容器设置环境变量

docker run --env <key>=<value> <IMAGE-ID>

八增加映射端口

docker stop nginx
docker rm nginx
docker run -itd --name nginx -p 80:80 -p 800:800 -t nginx

8.1 修改配置文件修改端口

在容器运行时,修改容器端口和映射卷方法

1.停止docker

2.查找容器对应容器id

ps -ef|grep mysql

3修改容器配置文件hostconfig.json

vi /var/lib/docker/容器ID/hostconfig.json
手动修改端口号或映射卷路径

4启动docker

九 设置已启动容器为一直启动

docker ps -qa #查看docker容器进程id
docker update --restart=always 容器名
docker update --restart=always 容器id

十 防火墙开放docker需要的端口号


--开放端口号firewall-cmd --zone=public --add-port=1234/tcp --permanent (permanent永久生效,没有此参数重启后失效)
--更新防火墙策略
firewall-cmd --reload

--查看开放端口
firewall-cmd --zone=public --list-ports

--查看1234
firewall-cmd --zone= public --query-port=1234/tcp

--删除端口
firewall-cmd --zone=public --remove-port=1234/tcp --permanent
--注:每次更改firewall规则后需重新加载(firewall-cmd --reload)

十一 查看文件系统上overlay2对应docker id和名称

如需要查看具体docker容器安装到了文件系统什么位置,且文件系统中的文件名对应哪个容器,则可以使用如下方式


#查看容器所在文件系统位置
[root@localhost ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs        1.4G     0  1.4G   0% /dev

tmpfs           1.4G     0  1.4G   0% /dev/shm

tmpfs           1.4G   11M  1.4G   1% /run

tmpfs           1.4G     0  1.4G   0% /sys/fs/cgroup

/dev/sda3        18G   17G  1.7G  91% /

/dev/sda1       297M  197M  101M  67% /boot

tmpfs           283M   12K  283M   1% /run/user/42

overlay          18G   17G  1.7G  91% /var/lib/docker/overlay2/88e0b6ba5c0a143673aa2af92421aede02ed9b1bff43656bfd5df8dbc4796a16/merged

overlay          18G   17G  1.7G  91% /var/lib/docker/overlay2/9294114ef53ca6d335f4b02ae6eb37d974f68d000c3a4b9ddc8d6eadbbbb85b6/merged

overlay          18G   17G  1.7G  91% /var/lib/docker/overlay2/0d11220a67672c3f3497d8e46fb07e73b0b2bca9f0d21e86930cfc45fdf0adcd/merged

overlay          18G   17G  1.7G  91% /var/lib/docker/overlay2/abd41055f1228e985d0c59d6a7a82d94ca33afbb726bf5bc44821fe2e1db5d5a/merged

tmpfs           283M     0  283M   0% /run/user/0
#查看文件系统上docker对应容器id和名称
[root@localhost ~]# sudo docker ps -aq | xargs sudo docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep 0d11220a67672c3f3497d8e46fb07e73b0b2bca9f0d21e86930cfc45fdf0adcd

2506, e89c75f9e547ff66bf6e719e48ae068569d6e80fa607f3a149f0823e11bf759b, /jenkins, /var/lib/docker/overlay2/0d11220a67672c3f3497d8e46fb07e73b0b2bca9f0d21e86930cfc45fdf0adcd/work

十二 docker 实例启动

mysql实例得启动

docker run -p 3306:3306 --name mysql \
-v /data1/docker/mysql/my.cnf:/etc/my.cnf \
-v /data1/docker/mysql/conf:/etc/mysql/conf.d \
-v /data1/docker/mysql/logs:/logs \
-v /data1/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
  • 映射路径可以自动创建,本地没有镜像可以从远程仓库自动拉取
  • my.cnf 映射前,不能添加文件映射,先将容器启动并从容器中copy到映射目录,再重新映射此文件
网友评论