Docker基础命令
查看镜像:docker images

搜索镜像:docker search redis ,根据STARS进行排序, OFFICIAL代表官方镜像 ,AUTOMATED表示自动构建,该镜像由Docker Hub自动构建流程创建。

拉取镜像:docker pull redis

删除镜像:docker rmi redis ,删除时可加上镜像ID:IMAGE ID
注意!删除容器使用:docker rm myredis
查看容器:docker ps ,展示正在运行的容器;docker ps -a 展示所有的容器;docker ps -l 展示最后启动的容器

查看已经停止的容器:docker ps -f status=exited

列出最近创建的2个容器: docker ps -n 2

拉取nginx镜像,通过docker run创建启动容器,将宿主机的8080端口映射到创建容器内部的80端口上,容器的名称为myng


使用镜像centos:7 来创建运行容器,并命名为mytest7 :docker run -it --name mytest7 centos:7 /bin/bash ;-i 保持交互 ,即使没有连接也保持STDIN打开 ; -t 告知容器启动后分配一个伪tty终端;/bin/bash 指定在容器中运行shell命令进行交互

守护方式创建容器: docker run -di --name myubuntu ubuntu ; -d, --detach=false, 指定容器运行于前台还是后台,默认为false

创建非交互式非后台式容器:docker run --rm playnexxt/pnmy_nginx:1.0.0 /bin/echo hello ,运行完成输出后容器立即被删除

通过 docker exec -it myubuntu /bin/bash 进入守护模式创建的容器,未命名则使用容器ID进入

容器的启动和停止 ,docker start myubuntu ,docker stop myubuntu

批量启动和批量停止容器:
#docker start $(docker ps -a |awk 'NR>1{print $1}')
#docker stop $(docker ps -a |awk 'NR>1{print $1}')宿主拷贝文件到容器:docker cp ./test.txt centos111:/home ,将宿主中的test.txt文件拷贝到容器centos111中的home目录下

从容器拷贝文件到宿主

指定目录挂载,创建容器添加 -v 参数,格式: 宿主目录:容器目录 ,如 /mydata 是本地宿主目录,/dcdata是容器目录

多目录挂载:
docker run -d --name zblogdb -p 33006:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=21386171 mysql:5.7

docker run -it --name centos_mount_test -v /mydata/:/dcdata -v /mydata2/:/dcdata2 centos

***重点:参数:--privileged=true 解决挂载时无权限的问题,使用该参数,container内的root拥有真正的root权限,否则,容器内部的root只是外部的一个普通用户权限
匿名挂载 ,

命令中的 /dcdata/ 是容器中的目录 ,挂载在宿主中的 /var/lib/docker/volumes/ 可找到具体的卷(volume)

当容器匿名挂载产生卷数量过多时可使用 docker inspect mycentos(容器名) 查看对应的挂载信息

具名挂载
docker run -di --name mynode01 -v docker_mynode01_data:/usr/local/data centos

卷名称为:docker_mynode01_data ,同时对应宿主机卷路径:

数据卷读写权限:

ro 只读 ,rw 读写,对容器目录/usr/mynode02_data下的文件进行读写限制
目录卷继承:

容器mynode03 继承 mynode02的挂载目录,且依旧可以对卷目录进行权限限制

查看容器IP地址:

查看容器日志:

版权声明:本文由老瓦罐儿煨汤发布,如需转载请注明出处。