查找镜像

docker search xxx

拉取镜像

docker pull xxx

上传镜像

docker push [选项] name:tag

查看本地镜像

docker images

PS:一个完整的镜像由镜像名称和TAG组成。如果只看到一个镜像的名称没有标签,意思是默认标签:latest.

修改镜像名称

  1. [root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. nginx02 latest 288df216f6f0 17 hours ago 195MB
  4. tomcat latest 97f970b9f6d1 39 hours ago 680MB
  5. python 3.8 5c4350efb04f 3 days ago 912MB
  6. mysql 5.7 05311a87aeb4 3 days ago 450MB
  7. redis 6.2 87c26977fd90 3 days ago 113MB
  8. nginx latest f2f70adc5d89 4 days ago 142MB
  9. centos latest 5d0da3dc9764 6 months ago 231MB
  10. [root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker tag 5c4350efb04f python01:3.8
  11. [root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker images
  12. REPOSITORY TAG IMAGE ID CREATED SIZE
  13. nginx02 latest 288df216f6f0 17 hours ago 195MB
  14. tomcat latest 97f970b9f6d1 39 hours ago 680MB
  15. python01 3.8 5c4350efb04f 3 days ago 912MB
  16. python 3.8 5c4350efb04f 3 days ago 912MB
  17. mysql 5.7 05311a87aeb4 3 days ago 450MB
  18. redis 6.2 87c26977fd90 3 days ago 113MB
  19. nginx latest f2f70adc5d89 4 days ago 142MB
  20. centos latest 5d0da3dc9764 6 months ago 231MB
  21. [root@iZbp1bm7y86rsab1sz0ihcZ ~]#

查看本地镜像信息

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker image inspect tomcat[
    {
        "Id": "sha256:97f970b9f6d1db03eb2ebe7b9982e6466928c9d3acc36c20dc62b66b6229addc",
        "RepoTags": [
            "tomcat:latest"
        ],

把镜像导出到本地

docker save -o xxx.tar xxx:latest

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
tomcat       latest    97f970b9f6d1   18 hours ago   680MB
nginx        latest    f2f70adc5d89   3 days ago     142MB
centos       latest    5d0da3dc9764   6 months ago   231MB
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker save -o centos.tar centos
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# ls
centos.tar  my_images  nginx.tar
[root@iZbp1bm7y86rsab1sz0ihcZ ~]#

或者

docker save > xxx.tar xxx:latest

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker save > nginx.tar nginx
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# ls
my_images  nginx.tar
[root@iZbp1bm7y86rsab1sz0ihcZ ~]#

删除镜像

docker rmi xxx:latest

根据本地镜像导入镜像

docker load -i xxx.tar

或者

docker load < xxx.tar

查看容器-正在运行的

docker ps

查看所有容器,包括正在运行和没有运行的容器

docker ps -a

删除容器

docker rm container1

ps:强制删除正在运行的容器可以加上:-f 选项

创建容器

docker create -it —name test centos:7

ps:创建完成之后,容器是create的状态

启动容器

docker start test

停止容器运行

docker stop test

重启容器

docker resytart test

挂起容器

docker pause test

恢复状态

docker unpause test

查看启动服务

docker container ls

强制删除所有容器(生产环境严禁使用)

docker ps -a -q | xargs docker rm -f

强制启动所有容器

docker ps -a -q | xargs docker start

同理,还可以强制停止、重启、挂起等操作

运行一个容器

docker run -itd —restart=always -p 8080:80 —name test centos:7

-i 可交互

-t 伪终端

-d 后台运行

—name 给容器命名

—restart=always 始终保持运行(随着docker开启而运行)

-p 端口映射,8080是宿主机端口,80是容器端口

—rm 会随着退出容器的操作而删除容器

查看容器信息

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker inspect centos01
[
    {
        "Id": "14893b8c975f6edbb22cdc34a8aa19b5a60d5d43dfa5a3814f97be94839be79e",
        "Created": "2022-03-21T05:33:59.057503084Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {

宿主机复制文件到容器

#复制宿主机当前路径下1.txt文件到容器内部路径/usr/share/nginx/html目录下
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker cp 1.txt 63b9283aa1fb:/usr/share/nginx/html
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# ls /data/        #宿主机/data目录是该容器的映射目录
1.txt  index.html  nginx
[root@iZbp1bm7y86rsab1sz0ihcZ ~]#

进入一个容器

docker exec -it test1 /bin/bash

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker exec -it nginx01 /bin/bash
root@adac452ba1d0:/# ls
bin   docker-entrypoint.d   home   media  proc  sbin  tmp
boot  docker-entrypoint.sh  lib    mnt    root  srv   usr
dev   etc                   lib64  opt    run   sys   var
root@adac452ba1d0:/# 

docker exec帮助信息
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker exec --help

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               后台运行
      --detach-keys string   Override the key sequence for
                             detaching a container
  -e, --env list            设置容器中运行时的环境变量
  -i, --interactive          Keep STDIN open even if not
                             attached
      --privileged           Give extended privileges to
                             the command
  -t, --tty                  分配一个虚拟终端
  -u, --user string          Username or UID (format:
                             <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the
                             container
[root@iZbp1bm7y86rsab1sz0ihcZ ~]#

或者

docker attach test1

区别:

进入方式:

exec进入的方式需要添加-i -t选项,后边还需要给容器一个shell环境。

attach就不需要这么麻烦,可以直接进入。

退出状态:

exec 如果执行exit退出,容器仍然保持运行。

attach 如果执行exit退出,容器会被关闭。如果想要保持容器不被关闭,可以使用键盘:ctrl +p ctrl+q可以实现。

本质区别:

exec进入的方法,会产生新的进程。

attach不会产生新的进程。

宿主机和容器之间相互传东西

docker cp nginx-1.16.0.tar.gz

webapp:root

容器导出

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker export -o nginx01.tar nginx01
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# ls
nginx01.tar
[root@iZbp1bm7y86rsab1sz0ihcZ ~]#

将容器制作成镜像

docker commit webapp myweb

搜索镜像:docker search [OPTIONS] TERM

上传镜像:docker push [OPTIONS] NAME[:TAG]

下载镜像:docker pull [OPTIONS] NAME[:TAG]

提交镜像:docker commit [OPTIONS] CONTAINER NAME[:TAG]

构建镜像:docker build [OPTIONS] PATH

删除镜像:docker rmi [OPTIONS] IMAGE [IMAGE…]

增加镜像标签:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

查看所有镜像:docker images [OPTIONS] [REPOSITORY[:TAG]]

查看docker信息

docker info

docker命令帮助

docker run —help

复制文件到容器

docker cp custom.conf Nginx:/etc/nginx/conf.d/

更新容器启动项

docker container update —restart=always nginx

查看docker日志

tail -f /var/log/messages

容器日志信息 – docker logs

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker logs --help

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        显示日志额外信息
  -f, --follow         动态跟踪显示日志信息
      --since string   显示某个时间点之后的
  -n, --tail string    显示倒数的行数(默认全部),--tail 10
  -t, --timestamps     Show timestamps
      --until string   显示某个时间节点之前的,-t --until 2m(m表示分钟)
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker logs -t --until 2m nginx        #查看2分钟之前的日志
[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker logs -f --tail 10 nginx        #查看10条日志

容器重命名

docker rename old_name new_name

[root@iZbp1bm7y86rsab1sz0ihcZ ~]# docker rename nginx nginx01

volume-数据卷管理

创建数据卷

docker volume create 数据卷名称

查看数据卷

docker volume inspect 数据卷名称

查看全部数据卷

docker volume ls

删除数据卷

docker volume rm 数据卷名称

容器映射数据卷

#通过数据卷名称映射

docker run -v 数据卷名称:容器内部的路径 镜像id

#通过路径映射数据卷

docker run -v 路径:容器内部的路径 镜像id