docker的基本命令和基本操作

docker的基本命令

下载镜像:
docker pull busybox

上传镜像:
docker push busybox

查看镜像:
docker images

查找busybox镜像:
docker search busybox

导出busybox镜像为busybox.tar
docker save busybox:latest >busybox.tar

导入镜像:
docker load <busybox.tar

删除镜像:
docker rmi busybox

启动镜像:
docker run -it centos /bin/bash

镜像与容器常用指令

查看后台运行的容器:
docker ps

只显示正在运行容器:
docker ps -q

显示所有的容器,包括没有启动的:
docker ps -a

显示所有的容器:
docker ps -qa

查看centos镜像历史(封装过程):
docker history centos

删除镜像,启动容器时删除镜像会失败,先删除容器,再删除镜像
docker stop 容器id
docker rm 容器id
docker rmi 镜像

修改镜像的名称和标签,默认标签为latest
docker tag centos:latest cen:v1

查看镜像的底层信息:
docker inspect centos

容器命令

关闭容器:
docker stop 容器ID

启动容器:
docker start 容器ID

重启容器:
docker restart 容器ID

删除容器:
docker rm 容器ID
注:只能删除关掉的容器,运行中的容器无法删除

连接容器attach|exec:
docker attach 容器ID
注:退出后容器自动关闭

docker exec -it 容器ID /bin/bash
退出后容器继续运行

过滤查看mac和ip地址
mac:
docker inspect -f ‘{{.NetworkSettings.MacAddress}}’ 容器ID
ip:
docker inspect -f ‘{{.NetworkSettings.IPAddress}}’ 容器ID

基本操作

制作自定义镜像

不推荐一层一层手动封装
1.先启动一个纯净的镜像(以centos为例)
docker run -it centos
2.对开启的容器进行修改
例如:
添加yum源
准备需要用到的基础环境

3.另存为另外一个镜像
docker commit 修改的容器ID myos:v1
注:另存镜像时容器必须关闭

4.使用Dockerfile文件创建一个新的镜像文件
Dockerfile语法格式:
FROM:基础镜像
MAINTAINER:镜像创建者信息(说明)
EXPOSE:开放的端口
ENV:设置环境变量
ADD:复制文件到镜像
RUN:制作镜像时执行的命令,可以有多个
WORKDIR:定义容器默认工作目录
CMD:容器启动时执行的命令,仅可以有一条CMD

创建一个Apache的镜像文件

1.创建文件夹:
mkdir cc
cd cc

2.创建Dockerfile文件
touch Dockerfile
cp /etc/yum.repos.d/local.repo ./
vim Dockerfile

FROM  myos:v1
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html/            //定义容器默认工作目录
RUN echo "test" > /var/www/html/index.html
EXPOSE 80                //设置开放端口号
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]

3.创建镜像:
docker build -t myos:http .

4.运行镜像:
docker run -d myos:http

创建私有镜像仓库

1.定义一个私有仓库:
vim /etc/docker/daemon.json

{"insecure-registries" : ["192.168.1.10:5000"] }
#使用私有仓库运行容器
指定仓库ip和端口

2.重启docker
3.运行私有仓库
docker run -d -p 5000:5000 registry
4.测试
curl ip+端口
出现括号即为正确
5.给镜像仓库打标签
docker tag busybox:latest 192.168.1.10:5000/busybox:latest
6.上传镜像:
docker push 192.168.1.10:5000/busybox:latest

7.另一台docker服务器运行仓库
拷贝第一台上的
/etc/docker/daemon.json

/etc/docker/

重启服务
查看镜像
docker images

8.查看私有仓库的镜像
" curl http://仓库的ip+仓库端口/v2/_catalog "

9.查看里面的镜像标签
“ curl http://仓库的ip:仓库的端口/v2/镜像名/tags/list”

挂载NFS共享存储

1.配置nfs服务端
2.配置docker挂载nfs
3.进行挂载
docker run -d -p 80:80 -v /mnt/qq:/var/www/html -it myos:http
-v /本地挂载后的目录:/镜像内的目录

创建自定义网桥

1.新建Docker网络模型
docker network create --subnet=172.30.0.0/16 docker01
2.删除网桥
docker network rm docker01
3.查看网络
docker network list
4.网络详细信息
docker network inspect docker01
5.使用自定义网桥启动容器
docker run --network=docker01 -id nginx
6.端口映射
docker run -p 本机端口:虚拟机端口 -id nginx
7.解决ifconfig查看网桥是id的问题
docker network create 网桥名 --subnet=172.30.0.0/16 -o com.docker.network.bridge.name=网桥名

猜你喜欢

转载自blog.csdn.net/m0_38139137/article/details/90573048