Docker安装及常用命令

Docker安装及常用命令

Docker 相关概念

1. 什么是Docker

Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

Docker 版本有 Ubuntu、CentOS、Debian、mac、Windows

Docker 像一个轻量级的虚拟机,但远比虚拟机本身占用次源少。

2. Docker Container(容器)

Docker 将宿主机隔离出来的一个个的空间。

3.Docker image (镜像)

特殊的文件系统,是对某一时刻容器关态的备份,就像 window 中 Ghost 镜像。

镜像不包含任何动态数据,基内容在构建之后也不会被改变。

4.DockerRegistry(记录中心)

是官方及第三该机构提供的镱像下载仓库,如 maven 的中央仓库,把一些常用的容器打包成镜像,开发者

可以直接中 registry 上下载镜像。

5.Docker运行原理

在这里插入图片描述

操作用户可以用 Docket 客户端完成以下操作:

通过客户端从 Registry 下载镜像。(pull)

运行本地镜像,成为容器。(run)

通过 Dockerfile 文件构建新的镜像。(build)

切换root用户

sudo su root

更新apt

sudo apt-get update

安装apt

sudo apt install net-tools 

安装ssh

sudo apt-get install openssh-server

docker安装

  1. 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:

    $ sudo apt-get remove docker docker-engine docker-ce docker.io
    
  2. 更新apt包索引:

    sudo apt-get update
    
  3. 安装以下包以使apt可以通过HTTPS使用存储库(repository):

    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    
  4. 添加Docker官方的GPG密钥:

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  5. 使用下面的命令来设置stable存储库:

    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
    
  6. 安装最新版本的Docker CE:

    $ sudo apt-get install -y docker-ce
    
    
  7. 查看docker服务是否启动:

    $ systemctl status docker
    
    
  8. 查看是否安装成功:

    $ sudo docker -v
    
    

配置阿里云远程仓库

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://8z4e1ukg.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

将用户docker用户组

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

安装portainer可视化界面

docker volume create portainer_data

docker run -d -p 9010:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

安装redis

docker network create kgc_net 创建网段

docker network create kgc_net 创建网段

docker search redis 搜索镜像

docker pull redis 拉取下载镜像

通过镜像生成容器redis

docker run -d -p 6379:6379 --restart=always --name redis --network kgc_net --network-alias redis redis

安装RabbitMQ

通过镜像生成rabbitmq

docker run -d -it --name rabbitmq -p 15672:15672 -p 5672:5672 --network kgc_net --network-alias rabbitmq rabbitmq

启动rabbitmq_management

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management

安装mysql

docker pull mysql:5.6 拉取镜像

docker images mysql 查看镜像

使用mysql5.6镜像创建容器 (映射端口为12345)

docker run -p 12345:3306 \
--name mysql \
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d \
-v /zzyyuse/mysql/logs:/logs \
-v /zzyyuse/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d \
mysql:5.6

docker常用命令

查看docker版本 : docker --version

查看安装的镜像:docker images [NAME]

下载镜像:docker pull NAME[:TAG]

搜索可用的docker镜像:docker search NAME

​ 比如获取最新的centos镜像:docker pull centos:latest

启动容器:docker start [容器ID]

查看正在运行的容器:docker ps

查看最近生成的容器:docker ps -l

查看所有容器ID:docker ps -a -q

删除所有的容器:docker rm $(docker ps -a -q)

删除单个镜像:docker rmi [镜像ID]

制作镜像(dockerfile)

​ 内置命令

​ FROM:依赖的底层镜像

​ MAINTAINER:指定镜像创建者

​ ENV:设置环境变量

​ RUN:运行 shell 命令

​ COPY:将编译机本地文件拷贝到镜像文件系统中

​ EXPOSE:指定监听端口

​ ENTRYPOINT:预执行命令,创建容器并启动后才执行

创建 Dockerfile 文件(文件名称必须是 Dockerfile)

​ FROM tomcat

​ MAINTAINER tiger

​ COPY scope.html /usr/local/tomcat/webapps/ROOT

​ EXPOSE 8080/tcp

执行命令生成镜像

docker build [OPTIONS] PATH|URL|.

OPTIONS 说明:

-t :后面标示要创建的镜像名称

. :代表 Dockerfile 所在的路径
根据镜像,生产docker容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS 说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; 
-d: 后台运行容器,并返回容器 ID; 
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; 
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的 DNS 服务器,默认和宿主一致; 
--dns-search example.com: 指定容器 DNS 搜索域名,默认和宿主一致; 
-h "mars": 指定容器的 hostname; 
-e username="ritchie": 设置环境变量; 
--env-file=[]: 从指定文件读入环境变量; 
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定 CPU 运行; 
-m :设置容器使用内存最大值; 
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器; 
--expose=[]: 开放一个端口或一组端口;
-p:映射端口 8888:8080 前面为宿主机端口,后面是 tomcat 端口 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值