docker常用命令

注:运行环境Ubuntu18.04.1

1 下载镜像

(1)在互联网情况下
# docker pull 镜像名:版本
sudo docker pull mysql:5.6.48
(2)无互联网情况下
# 先在有互联网的电脑上下载镜像文件,由于在docker hub上无法直接手动下载镜像文件,因此只能在具有docker环境下使用pull命令下载
sudo docker pull mysql:5.6.48

# 存出镜像文件
# docker save -o 保存的镜像压缩包 镜像名:版本号
sudo docker save -o mysql_5.6.48.tar mysql:5.6.48

# 载入镜像
# docker load -i 镜像压缩包
sudo docker load -i mysql_5.6.48.tar 
(3)查看镜像文件
sudo docker images
(4)删除镜像
# docker rmi 镜像名/镜像编号
sudo docker rmi mysql:5.6.48

2 操作容器

(1)创建容器和运行容器
# 首选方法,创建并运行容器
# docker run 参数 镜像名/镜像编号 命令
# --name表示容器名称 -i表示输入输出 -t表示伪终端 -d表示后台运行
# -p表示映射端口"宿主机端口:容器端口"
# -v表示数据卷"宿主机目录:容器目录"
# /bin/bash是容器内shell(如果没有/bin/bash可换成/bin/sh),也可以不要
sudo docker run --name my_test -itd -p 5000:5000 -v /home/mason/webapp/my_test:/home/my_test python:3.6.5 /bin/bash

# 快速创建并启动,系统自动设定名称,没有-d容器退出后,容器停止
sudo docker run -it python:3.6.5 /bin/bash

# 方法二,先创建容器
# docker create 参数 镜像名/镜像id 命令
sudo docker create -it python:3.6.5
# 再启动容器
# docker start 容器名/容器id
sudo docker start 36f9696c942e
(2)进入容器
# docker exec 参数 容器名/容器 命令
sudo docker exec -it my_test /bin/bash

# 退出容器
输入:exit
或者:Ctrl+d
(3)停止容器
# docker stop 容器名/容器 命令
sudo docker stop my_test /bin/bash
(4)删除容器
# docker rm 容器名/容器编号,注意:删除镜像是rmi,容器是rm
sudo docker rm my_test
(5)查看容器
# 查看所有容器 
sudo docker ps -a 

# 查看容器内详情 
# sudo docker inspect 容器名/容器id 
sudo docker inspect my_test 
 
# 查看容器内的进程 
sudo docker top my_test
(6)容器复制数据
# 宿主机向容器复制 
# docker cp 宿主机数据 容器名:容器目录 
sudo docker cp /home/mason/data/hello.txt  my_test:/home 
 
# 容器向宿主机复制,反转路径即可 
# docker cp 容器名:容器目录 宿主机数据 
sudo docker cp my_test:/home/hello.txt /home/mason/data

(7)容器导入导出
# 容器导出
# docker export  -o  容器压缩包名  容器名:版本号
sudo docker export -o my_test.tar my_test:v1

# 容器导入 
# docker import  容器压缩包名
sudo docker import my_test.tar

(8)将容器导出为镜像
# 使用export导出的镜像只能用import导入(丢失镜像历史),使用save导出的镜像只能有load导入(数据保存完整),使用“commit”可以实现容器和镜像的转换,-m是说明信息,-a是用户信息
# docker commit 容器名  镜像名:版本号
sudo docker commit -m "my test " -a "yyp" my_test my_test:v1

3 容器互联

将mysql容器和flask容器链接一起。
(1)创建mysql容器
# docker run 参数 镜像名/镜像编号 命令
# -e表示为容器设置环境变量
sudo docker run --name test_mysql -itd -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.48
(2)创建web服务器并链接mysql容器
# --link表示连接容器"name:alias(链接的容器名:别名,name和alias可以相同)",也可仅仅跟要链接的容器名
# 简单创建链接
# sudo docker run -it --link test_mysql:mysql python:3.6.5 /bin/bash

# 完整创建链接
sudo docker run --name my_test -itd -p 5000:5000 -v /home/mason/webapp/my_test:/home/my_test --link test_mysql python:3.6.5 /bin/bash
(3)查看是否链接通
# docker exec -it 容器名 ping 容器名
sudo docker exec -it my_test ping test_mysql

4 Docker网络配置

 (1) 配置网络
# 创建自己的网络
# --subnet表示网段是192.168.18.0/255.255.255.0,如果24变为16表示255.255.0.0
# --driver表示设置网络模式为bridge
# --gateway表示设置网关为192.168.18.1
# dev_network表示自己创建的网络名
sudo docker network create --driver bridge --subnet=192.168.18.0/24 --gateway=192.168.18.1  dev_network

# 查看docker网络模式,Docker默认网络模式是bridge网络
sudo docker network ls

# 删除网络
sudo docker network rm dev_network

# 将指定容器连接到指定网络
# connect表示连接,断开用disconnect
# dev_network表示网络名
# my_alpine表示容器名
sudo docker network connect dev_network my_alpine


(2) 使用新网络创建容器

# 创建容器时添加网络参数即可
# --net指定在dev_network网络中
# --ip表示设置ip地址为192.168.18.11
sudo docker run --name my_alpine --hostname myalpine.com --net dev_network --ip 192.168.18.11 -d --restart always --privileged=true alpine:3.8
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值