Docker基本命令

Linux 下,不要使用 root用户管理 Docker

启动 Docker

1
sudo systemctl start docker

测试

1
sudo docker run hello-world

会打印一条 Hello from Docker!然后退出。

更新

get.Docker. com 下载脚本,然后运行它在 Linux 上安装最新的 Docker 稳定版本:

1
2
sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

配置修改

1
sudo vim /etc/docker/daemon.json
  1. registry-mirrors 镜像
  2. dns
  3. hosts 远程访问
1
2
3
4
{
"registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn"],
"dns": ["8.8.8.8", "8.8.4.4"]
}

"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]

服务

1
sudo vim /lib/systemd/system/docker.service

将第11行的ExecStart=/usr/bin/dockerd,替换为:

1
2
#ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:7654
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

2375是管理端口,7654是备用端口

~/.bashrc中写入docker管理端口

1
2
3
4
5
6
7
8
9
export DOCKER_HOST=tcp://0.0.0.0:2375
source ~/.bashrc
env |grep DOCKER
# 重新加载 systemctl 配置。
sudo systemctl daemon-reload
# 重新启动 Docker。
sudo systemctl restart docker.service
# 查看端口监听
sudo netstat -lntp | grep dockerd

开机自启

1
2
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

添加 docker 组用户

1
2
3
4
sudo groupadd docker
sudo usermod -aG docker $USER
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

完全退出后,重新登录,然后不适用 sudo 测试

1
docker run hello-world

常用命令

镜像相关

1)docter pull NAME[:TAG] 使用pull命令从docker hub仓库下载镜像到本地

2)docker tag oldName newName 为本地镜像添加新的标签

3)docker images 列出本地主机上已有的镜像

4)docker search TERM 默认搜索docker hub官方仓库的镜像

5)docker rmi IMAGE [IMAGE…] IMGE可以是标签或id

6)docker commit [OPTIONS] CONTAINER[REPOSITORY[:TAG]] 基于已有镜像的容器创建镜像,可以创建比较复杂的镜像。-a:作者信息,-m:提交信息,-p:提交时暂停容器运行

7)docker import -NAME[:TAG] 基于本地模板导入镜像

8)docker build -t NAME[:TAG] dockerfile路径 基于dockerfile创建

9)docker save –o xxx.tar NAME[:TAG] 存出镜像到本地文件

  1. docker load <xxxx.tar 载入镜像

11)docker inspect 镜像id 查看镜像详细信息

容器相关

1)docker create –it NAME[:TAG] 创建容器

2)docker start NAME[:TAG] 启动容器

3)docker run –it NAME[:TAG] 等于先执行docker create命令,再执行docker start,-it交互式,守护态运行,通过run后加-d实现

4)docker stop[-t|–time[=10]] 终止容器

5)docker restart NAME[:TAG] 启动状态重新启动

6)docker ps –a –q 查看处于终止的容器id信

7)docker ps 查看正在运行的容器

8)docker ps –a 查看所有容器

9)docker rm 容器id 删除容器,需要先停止

10)docker logs 容器id 查看容器日志
10)docker logs -f 容器id 查看容器日志
10)docker logs -n 100 容器id 查看容器日志
10)docker logs -f 容器id | tail -n 100

11)docker port <container-name|container-id> 端口 查看容器映射端口

12)docker inspect 容器id 查看容器信息

13)docker exec -u root -it containerID /bin/bash 指定用户进入容器操作

14)env 容器内部输入env查看容器内部环境变量

15)docker cp container-id : 复制本地文件到容器

16)docker cp container-id: 复制容器文件到本地

17)docker network create app_net 创建自定义网络

18)docker network connect app_net container-name连接网络

19)docker run -it -v /dbdata –name dbdata 创建数据卷容器dbdata,并在其中创建数据卷挂载到/dbdata。其他容器挂载使用–volumes-from dbdata,可以多次使

用,从多个容器挂载多个数据卷,还可以从一挂载数据卷的容器来挂载数据卷,且使用–volumes-from 参数所挂载数据卷的容器自身不需要保持运行,要删除一个数据卷

必须在删除最后一个还挂着它的容器时显示使用docker rm -v命令来指定同时删除关联的容器

原文:https://blog.csdn.net/songer_xing/article/details/78599197

本文地址 Centos7 安装 docker

附录

daemon.json

  • windows 下的地址 C:\Users\${USER}\.docker\daemon.json
  • linux 下的地址 /etc/docker/daemon.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8", "8.8.4.4"],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
}
}

本文地址: https://github.com/maxzhao-it/blog/post/38344/