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/名称>文件名