- 1、Docker操作常用命令
- 1.1、镜像操作命令(下载、查看、删除)
- 1.2、容器操作命令
- 1.3、修改容器内部内容
- 1.3.1、进容器内部修改
- 1.3.2、挂载数据到外部修改
- 1.4、发布镜像
- 1.5、镜像打包,服务器之间传输
- 1.6、将镜像推送到docker hub仓库
- 1.7、查看容器的日志
- 1.8、将容器内的nginx的首页、配置文件挂载到宿主机上
- 1.9、容器和宿主机之间完成文件复制
去docker hub,找到nginx镜像。在Tags页面找不同版本的镜像
#1、下载最新版本镜像 docker pull nginx docker pull redis # 2、下载指定版本的镜像 docker pull nginx:1.20.1 #镜像名:版本名(标签) docker pull redis:6.2.4 #3、查看本地所有镜像(下载来的镜像都在本地) docker images redis = redis:latest # 4、删除镜像 docker rmi 镜像名:版本号 docker rmi 镜像id
- 拉取镜像
- 拉取指定版本镜像
- 查看本地的镜像
- 删除镜像
特别命令(linux命令)
# 重启操作系统 reboot
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 【docker run 设置项 镜像名 】 镜像启动运行的命令(镜像里面默认有的,一般不会写) # -d:后台运行 # --restart=always: 开机自启 # --name=mynginx :设置启动后容器的名 # 88是宿主机端口,80是容器端口 docker run --name=mynginx -d --restart=always -p 88:80 nginx # 2、查看正在运行的容器 docker ps # 3、查看所有 docker ps -a # 4、删除停止的容器 docker rm 容器id/名字 docker rm -f mynginx #强制删除正在运行中的 # 5、停止容器 docker stop 容器id/名字 # 6、启动容器 docker start 容器id/名字 #7、如果启动容器时,未设置开机自启,则可用以下命令设置应用开机自启 docker update 容器id/名字 --restart=always
启动容器:
例如:修改容器中nginx的index.html页面
1.3.1、进容器内部修改# 进入启动的容器内部,修改容器内容 # -it 以交互模式进入容器 # /bin/bash 进入容器控制台 # 容器id 这里的容器id是已经启动的容器的id docker exec -it 容器id /bin/bash # 进入容器中nginx的首页 cd /usr/share/nginx/html 修改nginx首页的内容 echo "Welcome To China
" > index.html
访问容器中linux的首页
1.3.2、挂载数据到外部修改意思是建容器内的文件与宿主机建立一种联系,在宿主机修改文件,可以影响到容器内部文件的数据
# -v /data/html:/usr/share/nginx/html:ro # 挂载 宿主机文件存放路径:容器内要挂载的文件存放路径:容器内只能可读(rw:容器内可读写) docker run --name=mynginx -d --restart=always -p 88:80 -v /data/html:/usr/share/nginx/html:ro nginx # 修改页面只需要去宿主机的 /data/html文件夹下,使用以下命令给index.html写入内容“111” echo 111 >index.html #我们再去访问容器内的nginx的首页,浏览器就会输出1111.4、发布镜像
将自己修改好的镜像提交(先存到本地仓库)
# 首先查看刚刚修改过的镜像的id(1.3中修改的镜像) docker ps # 提交修改过的镜像 -a:指明作者 -m:修改的内容 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 容器id 刚刚修改的id,例如下图的nginx # mynginx:2.0 指定推送后的镜像的 镜像名:版本号为 docker commit -a "zhangsan" -m "改变首页输出内容" 容器id mynginx:2.0
- 查看本地的镜像,刚刚提交的镜像已存储到本地仓库
docker images
- 启动新提交的镜像,并以交互命令进入启动后的容器
docker run --name=mynginx3 -d --restart=always -p 90:80 mynginx:2.0 docker exec -it 29be6ff9a4f947a9cda043795daafbf8733357bd8f83ea03eefe6e384b4bc4c6 /bin/bash
在物理机访问刚刚启动的容器
1.5、镜像打包,服务器之间传输将镜像打包,传输到别的服务器,在别的服务器docker中使用该镜像
# 1、将镜像保存成压缩包 docker save -o abc.tar nginx:v2.0 # 2、离线安装,通过u盘拷贝 # 别的机器加载这个镜像 docker load -i abc.tar
- 将镜像打包
docker ps docker save -o abc.tar nginx:v2.0
- 查看打包后的镜像
ls
- 将在服务器1(192.168.126.129)上打包的容器传输到服务器2(192.168.126.130):
# 第一个root指192.168.126.130的root账号,第二个root是值将abc.tar放到主机192.168.126.130的root目录下 scp abc.tar root@192.168.126.130:/root/
- 在别的服务器上使用该镜像
docker load -i abc.tar1.6、将镜像推送到docker hub仓库
推送镜像到docker hub;应用市场
# docker 官方命令 docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname
实际命令
#首先查看本地有的镜像 docker images # 把旧镜像的名字(nginx2:v2.0),zhansan为你的docker hub登录名,改成要推到docker仓库的新版名字(nginx:v1.0) docker tag mynginx:2.0 zhansan/nginx:v1.0 # 登录到docker hub,依次你的docker hub账号密码 docker login # 推送 docker hub登录名/仓库:镜像版本 docker push zhangsan/nginx:v1.0 # 推送完成镜像后退出 docker logout # 别的机器下载 docker pull zhangsan/nginx:v1.01.7、查看容器的日志
docker logs 容器id/容器名1.8、将容器内的nginx的首页、配置文件挂载到宿主机上
命令中的nginx.conf提前在宿主机指定位置创建
# 下边命令是docker启动命令 # docker 经常修改nginx配置文件 docker run -d -p 80:80 -v /data/html:/usr/share/nginx/html:ro -v /data/conf/nginx.conf:/etc/nginx/nginx.conf --name mynginx-02 nginx1.9、容器和宿主机之间完成文件复制
#把容器指定位置的东西复制出来 docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf #把外面的内容复制到容器里面 docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf