docker应用

linux ubuntu18 安装

先卸载可能存在的旧版本

sudo apt-get remove docker docker-engine docker-ce docker.io

更新apt包

sudo apt-get update

通过HTTPS使用仓库(repository)安装:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

在/etc/apt/sources.list.d/docker.list文件中添加下面内容

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

添加Docker官方的GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

更新apt包索引

sudo apt-get update

ubuntu安装最新版docker会报错,需要查看系统可安装docker版本,先删除系统内的docker,再执行下面命令安装

$ apt-cache madison docker-ce

  docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages

选择版本,安装docker-ce

sudo apt-get install docker-ce=<VERSION_STRING>

启动docker

sudo systemctl start docker

查看docker版本

sudo docker --version

测试hello world, docker从docker hub 拉取

sudo docker run hello-world

直接从dockerhub下载镜像太慢, 需要配置国内镜像源, 新增或修改daemon.json文件

  • Docker中国区官方镜像  https://registry.docker-cn.com
  • 网易  http://hub-mirror.c.163.com
  • ustc   https://docker.mirrors.ustc.edu.cn
  • 中国科技大学  https://docker.mirrors.ustc.edu.cn
  • 阿里云容器  服务  https://cr.console.aliyun.com/
sudo vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}

docker常用命令

命令大全:https://www.runoob.com/docker/docker-command-manual.html

搜索镜像

docker search centos

查看已有镜像

docker images

下载镜像

docker pull centos

删除镜像

docker rmi 镜像名字

创建容器

#在后台以交互模式运行一个容器并取名为test并把主机8080端口映射到容器80端口
docker run -itd -p 8080:80 --name test 镜像名

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
--name="nginx-lb": 为容器指定一个名称;

以交互模式进入容器

docker exec -it 容器id bash

将本地文件上传到指定docker容器

docker cp 本地文件路径 容器ID:容器路径
#docker cp apache.text 9ee74c614612:/root

动态修改容器端口映射:

修改以下文件

/var/lib/docker/containers/{容器id}/hostconfig.json下的PortBindings项目

/var/lib/docker/containers/{容器id}/config.v2.json下的PortBindings项目

然后重启docker服务:systemctl restart docker

#hostconfig.json
"PortBindings":{
    "22/tcp":[
        {
            "HostIp":"",
            "HostPort":"22002"
        }
    ],
    "80/tcp":[
        {
            "HostIp":"",
            "HostPort":"8080"
        }
    ]
},


#好坑的,容器里是压缩的
"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"22002"}],"80/tcp":[{"HostIp":"","HostPort":"8080"}]}

#config.v2.json
"Config": {
    ....
    "ExposedPorts": {
        "80/tcp": {},
        "8888/tcp": {}
    },
    ....
},
"NetworkSettings": {
....
"Ports": {
     "80/tcp": [
         {
             "HostIp": "",
             "HostPort": "80"
         }
     ],
}

#好坑的,容器里是压缩的
"ExposedPorts":{"22/tcp":{},"80/tcp":{}}

"Ports":{"22/tcp":[{"HostIp":"0.0.0.0","HostPort":"22002"}],"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"8080"}]},

centos/ubuntu容器安装ssh,开启sftp:

查看容器

docker ps -l  #查看当前容器
docker ps -a  #查看所有容器

停止一个容器

docker stop 容器名字
docker stop 容器id
docker kill 容器id

启动一个容器

docker start 容器id

重启一个容器

docker restart 容器id

暂停一个容器

docker pause 容器id

启动一个已暂停的容器

docker unpause 容器id

删除一个或多个容器,用空格分隔id

docker rm 容器id1 容器id2

批量删除已退出的容器

docker rm -v $(docker ps -aq -f status=exited)

设置容器端口影射

#-d后台运行容器
#-p 8080:80 影射容器8080到80端口
#httpd 需要用的镜像名字(如果本地不存在该镜像则从docker hub上下载)
docker run -d -p 8080:80 httpd

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值