docker容器操作

docker容器操作

容器是docker镜像的一个运行实例:是独立运行的一个或者多个所必须的运行环境,镜像是可读模板,容器给这个可读模板一个可写层。

  • 创建容器与运行容器
    docker的容器十分轻量级,用户随时可以创建或者删除,需要一个进程来启动。
    创建容器
格式:docker create [选项]... 镜像运行的程序  (不建议用这个启动)
常用选项:-i:让容器的输入保持打开
        -t:让Docker分配一个伪终端
        -d:守护进程形式运行
[root@server01 ~]# docker create -it nginx /bin/bash
1560de9a82a2b9640f843c07218323bcea3db826ac18e463d06db54fae607a06  #容器的id号
#报错ipv4 forwarding is.....原因:路由转发没开,可以在/etc/sysctl.conf文件添加net.ipv4_forward=1,打开路由转发

#查看容器  ps
格式:docker ps 【选项】(不加选项默认查看正在运行的容器进程)
    docker ps -a (查看全部)
[root@server01 ~]# docker ps -a
CONTAINER ID(ID号)     IMAGE(镜像)           COMMAND(正在运行的命令)                 CREATED(创建时间)                         STATUS(目前状态)              PORTS(端口)           NAMES(随机名)
1560de9a82a2             nginx                 "/docker-entrypoint.…"   4 minutes ago       Created                                                                             focused_williams
#最后的NAMES可使用命令:docker create -it --name abc nginx /bin/bash 创建修改

容器的启动与停止

格式: docker start 容器ID/名称
docker start 
[root@server01 ~]# docker start focused_williams
focused_williams
[root@server01 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1560de9a82a2        nginx               "/docker-entrypoint.…"   11 minutes ago      Up 3 seconds        80/tcp              focused_williams
#此时可以看到状态已经变成Up 3 seconds(启动状态)还有80端口已经打开了

#同时创建并启动:run命令如果本地镜像没有的话,会从公用仓库下载
docker run -d nginx /bin/bash -c ls/(并执行一条shell命令ls)
#就是在inspect上启动一个启动nginx的脚本
  "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
#而有的则没有启动脚本需要-c 后面写一个启动例如centos等:docker run -d centos /bin/bas -c "while true; do echo "123"; sleep 1; done"  
#启动每隔一秒输入一个123,也就是centos长期在启动。可以使用“docker logs 容器id号”查看输出内容,也就是123
#-d就是在后台来运行
[root@localhost ~]# docker run nginx /bin/bash -c ls
bin
boot
dev
docker-entrypoint.d
...

#删除容器:docker rm -f $(docker ps -aq)  #-f强制删除

容器的进入

#命令:docker exec / docker attach
格式:docker exec -it 容器ID/名称/bin/bash 
-i:让容器输入保持打开
-t:分配一个伪终端
[root@localhost ~]# docker exec -it 48d28d5fe5c2 /bin/bash
root@48d28d5fe5c2:/# exit
exit

容器的进出与导入

命令格式:docker export 容器ID/名称>文件名
posted @ 2021-10-19 22:05  whml  阅读(39)  评论(0编辑  收藏  举报