3- docker命令
将当前用户添加到
docker
用户组,否则每次执行命令都要用sudo
1
2
3sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
3.1 帮助命令
1 | docker version #显示docker版本信息 |
3.2 镜像命令
命令 | 参数 | 解释 |
---|---|---|
docker images |
-a,–all #列出所有镜像 -q, –quiet #只显示镜像id |
REPOSITORY:镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像id |
docker search 内容 | –filter=STARS=3000 #搜索stars大于3000的 | 从docker hub搜索镜像 |
docker pull 名称[:tag] | -a -q |
下载镜像, tag是版本 |
docker tag 镜像名 标签 | 给镜像重新打一个标签,不会增加一个镜像 | |
docker push 用户名/镜像名 | 提交镜像 | |
docker rmi 名称/id1 名称/id2 | -f | 删除镜像 |
docker rmi -f $(docker images -aq) | 删除全部镜像 | |
docker history 镜像名 | 查看镜像构建过程 |
docker pull
1 | 下载镜像: docker pull 镜像名[:tag] |
1 | using default tag: latest #如果不写tag, 默认latest |
- 分层下载的好处是可以共用。
3.3 容器命令
有了镜像才可以创建容器:
1
sudo docker pull centos
命令 参数 说明 docker run [可选参数] 容器
新建容器并启动 –name=”tomcat01” 容器名字 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p ip:主机端口:容器端口 -p 主机端口:容器端口 -p 容器端口 容器端口 -P 随机指定端口 docker run -it centos /bin/bash 启动并进入centos容器(进入centos容器之后可以执行linux命令) exit 容器推出并停止 ctrl + P + Q 容器推出但不停止 docker ps [空格]:
-a:
-n=2:
-q列出当前正在运行的容器
列出当前正在运行的容器+历史运行过的容器
显示最近创建的2个容器
只显示容器iddocker rm 容器id -f 删除容器(正在运行的容器要通过-f删除) docker rm -f $(docker ps -aq) 删除所有容器 docker ps -a -q | xargs docker rm 删除所有容器 docker start 容器id 启动容器 docker restart 容器id 重启容器 docker stop 容器id 停止当前正在运行的容器 docker kill 容器id 强制停止当前容器
| docker commit 参数 容器 镜像名 | -a:作者
-m:附加信息 | 将容器打包成镜像 |
将下载的tomcat镜像添加webapp之后打包成新的镜像:
1
2docker run --name "tomcat" -it -p 8080:8080 tomcat:9.0 /bin/bash
cp -r webapps.dist/* webappsctrl + p + q
1
docker commit -a "admin" -m "add webapps" tomcat mytomcat
3.4 其他常用命令
1. 后台启动容器
1 | docker run -d 容器名 |
- 使用docker ps发现刚刚运行的容器停止了。因为docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用就会自动停止。容器启动后,发现自己没有提供服务,就会立刻停止。
2. 查看日志
1 | docker logs -ft --tail 数字 容器 |
- 发现没有日志信息(因为啥也没干)
- 重新运行:
1 | docker stop 容器 |
再显示日志可以看到一直显示
helloworld
:1
docker logs -tf --tail 10 容器id
3. 查看容器中进程信息
1 | docker top 容器id |
4. 查看容器的元数据
1 | docker inspect 容器id |
- 会输出镜像的很多详细信息
5. 进入当前正在运行的容器
命令 | 区别 |
---|---|
docker exec -it 容器id bin/bash | 进入容器后开启一个新的终端 |
docker attach 容器id | 进入容器正在执行的终端,不会开启新的进程 |
- 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
6. 从容器复制文件到主机
1 | docker cp 容器id:路径 主机路径 |