docker常用命令

docker的一些常用信息

1.安装和加速

1.1 安装

参考Linux安装Docker

1.2 加速

通过自建nexus的形式进行加速是最优解。参考:在Docker上部署Nexusnexus配置的一些实践

2.登录并推送镜像

假设你的nexus代理的仓库叫做:https://docker.xxx.com
你有一个镜像:my-java/server-user:1.0

1
2
3
4
5
# 登录
$ docker login --username=<账号> --password=<密码> https://docker.xxx.com;

# 推送
$ docker push https://docker.xxx.com/my-java/server-user:1.0

3.容器常用命令

容器相关:

1
2
3
4
5
6
7
8
# 查看所有容器
$ docker ps -a

# 进入容器查看信息
$ docker exec -it <container_id> bash

# 删除所有已停止使用的容器
$ echo y | docker container prune

常用run参数说明:

1
2
3
4
5
6
7
8
9
10
11
# 启动一个容器
$ docker run --name=name_1 -m 1024m -v /tmp/app_logs/server-user/name_1/:/logs/ -e SYSTEM_EUREKA_INSTANCE_ID=name_1 -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime:ro --net=host -dit --restart=always my-java/server-user:1.0

# 参数说明
# --name:非必要,指定容器名称,在某些场合会方便我们检索
# -m :指定容器内存,这里指定为1024m
# -v:数据持久化,将容器目录映射到磁盘目录,详情参见volume;
# -e:指定一个环境变量给容器
# --net:网络模式,使用host模式会将网络直接映射到宿主机的网络
# -dit:启动模式,必要
# --restart:是否自动重启,必要,实现的是类似于守护进程的功能

镜像相关

1
2
3
4
5
6
7
8
# 查看所有image
$ docker images

# 删除所有没有使用到的image
$ docker image prune -a --force

# 删除指定的image
$ docker rmi <image_id>

创建volume到指定目录,参考官网:https://docs.docker.com/engine/reference/commandline/volume_create/

1
2
# volume-es-config是你的volume名称,device对应的是volume路径
docker volume create --name volume-es-config --opt type=none --opt device=/data/docker_volume/volume-es-config --opt o=bind

4. 查看容器启动参数

在查询容器的启动时参数,可以使用rekcod。参考:https://www.linuxea.com/2270.html

1
2
3
$ yum install npm -y
$ npm i -g rekcod
$ rekcod <container_id>