Docker 常用命令

常用命令

常用docker命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker

停止已经运行的容器
docker stop aeb8e8618b0c
移除容器
docker rm aeb8e8618b0c
移除镜像
docker rmi f28461be398f


进入对应容器中
docker exec -it c24f74677f5a bash

退出容器
exit

查找文件
find / -name my.php

查找docker容器的ip
docker exec -it c24f74677f5a ip addr

docker 查看缓存
docker system df
docker 删除缓存
docker system prune --volumes
docker 删除悬挂状态的镜像
docker image ls -f dangling=true
docker 删除数据卷中的(数据卷是容器自身文件体统之外的数据存储。
例如容器中的应用有上传图片的功能,上传之后肯定不能保存在容器内部,因为容器内部的数据会随着容器的死掉而被删除,所以,这些图片要保存在容器之外,也就是数据卷。
比如我们运行了一个 MongoDB 容器做测试,导入了很多测试数据,这些数据就不是在容器内部的,是在数据卷中,因为 MongoDB 的 Dockerfile 中使用了数据卷。
测试完成后,删除了这个 MongoDB 容器,但测试数据还在,没被删除。)
docker volume prune
Build Cache 的磁盘占用
Docker 18.09 引入了 BuildKit,提升了构建过程的性能、安全、存储管理等能力。
删除 build cache 可以使用命令:
docker builder prune

以下命令已下载禅道项目为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//查找
docker search zentao
//下载
docker pull idoop/zentao
//运行
docker run -d -p 9998:80 -p 9997:3306 -e ADMINER_USER="root" -e ADMINER_PASSWD="zentao" -e BIND_ADDRESS="false" -v $PWD/zentao:/opt/zbox --name zentao idoop/zentao
//保存镜像到压缩文件
docker save -o zentao.tar zentao
//下载镜像到压缩文件
sz zentao.tar
//上传镜像到压缩文件
rz
//将镜像tar包加载到镜像中去
docker load -i zentao.tar

拉取禅道开源版12.3.3

点击这里查看官网文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
拉取禅道开源版12.3.3版本命令如下:
sudo docker pull easysoft/zentao:12.3.3

下载地址:http://dl.cnezsoft.com/docker/zentao_12.3.3.tar.gz

拉取禅道开源版12.3.3版本命令如下:
sudo gunzip -c zentao_12.3.3.tar.gz | docker load

网络驱动名:创建的网络驱动名,可随意指定;

sudo docker network create --subnet=192.168.43.0/24 zentaonet

在根目录新建文件夹

mkdir /zentao/zentaopms
mkdir /zentao/mysqldata
运行
sudo docker run --name zentaoky -p 9997:80 --network=zentaonet --ip 192.168.43.10 --mac-address 02:42:ac:11:00:00 -v /zentao/zentaopms:/www/zentaopms -v /zentao/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.3.3

docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

1、从容器里面拷文件到宿主机?

 答:在宿主机里面执行以下命令

         docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 

 示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js,  现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢?

 答案:在宿主机上面执行命令
1
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

2、从宿主机拷文件到容器里面

  答:在宿主机里面执行如下命令

          docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

   示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢?

   答案:在宿主机上面执行如下命令     
1
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

3、在这里在记录一个问题,怎么看容器名称?

  执行命令:docker ps,出现如图所示,其中NAMES就是容器名了。

4.需要注意的是,不管容器有没有启动,拷贝命令都会生效。

查看当前docker 版本

1
2
3
4
//方法一
docker --version
//方法二
docker info
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@iZ25rsnm9crfk8Z mydata]# docker --version
Docker version 19.03.8, build afacb8b
[root@iZ25rsnm9crfk8Z mydata]# docker info
Client:
Debug Mode: false

Server:
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 5
Server Version: 19.03.8

查看 docker 容器指定时间的最后一百条日志数据

1
docker logs -f -t --since="2020-09-07" --tail=100 4ae7018fbd87

重命名镜像

1
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

例子

1
docker tag ca1b6b825289 registry.cn-hangzhou.aliyuncs.com/xxxxxxx:v1.0

当 docker 重启时,容器自动启动

创建容器时添加参数 –restart=always 后,。

使用方法:

1
docker container update --restart=always 容器名字

关闭方法

1
2
docker update --restart=no <container-id>
docker stop <container-id>

查看docker容器的 ip 地址

第一种,进入容器中查看

因为docker容器是彼此隔离的,所以容器内的ip是不一样的

容器启动后

1
docker exec -it 3062891ce665  bash

进入容器 3062891ce665为这个容器的id

1
cat /etc/hosts

查看容器的ip

1
2
3
4
5
6
7
8
root@3062891ce665:/var/www/html# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.10.5 3062891ce665

ip为 192.168.10.5

第二种,直接在外部查看

使用 docker inspect

1
docker inspect --format='{{.NetworkSettings.IPAddress}}' 3062891ce665
1
2
root@wjk-pc:/# docker inspect --format='{{.NetworkSettings.IPAddress}}' 3062891ce665
192.168.10.5

提示

1
docker inspect 3062891ce665

可以返回容器的所有信息

查看docker 容器的端口映射

1
docker port 3062891ce665
1
2
root@wjk-pc:/# docker port 3062891ce665
80/tcp -> 0.0.0.0:9999

docker update –restart=no 113715fa8a4d

继开 wechat
欢迎加我的微信,共同交流技术