docker1

docker的安装

乌班图安装docker

# 0 卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
# 1 安装必要工具
sudo apt-get update
sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg-agent 
    software-properties-common
# 2 安装GPG证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#换成阿里云
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 2 写入软件源信息
#官方
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#换成阿里云
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 3 更新并安装docker-ce
sudo apt-get -y install docker-ce
# 4 开启docker服务
 systemctl status docker

centos安装docker

# 官方建议docker运行在centos7 以上的系统
# 安装
0 卸载
yum remove docker docker-common  docker-selinux docker-engine
rm -rf /var/lib/docker

1 更新yum
yum update
2 安装需要的软件包, yum-util 
yum install -y yum-utils device-mapper-persistent-data lvm2
3 执行(向你的yum源,增加一条记录)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安装 
yum install docker-ce

5 验证安装(查看版本)
docker -v  
~]# docker -v  (19年03月12日发布)
# 自从分了docker-ce和docker-ee以后,以年份命名版本
Docker version 19.03.12, build 48a66213fe

6 启动docker服务
systemctl start docker

7 停止docker服务,重启docker服务
systemctl stop docker
systemctl restart docker

8 开机启动	
systemctl enable docker

9 查看概要信息
docker info(你可能写了一个管理docker的运维平台)

远程仓库


镜像操作

1. 查找你需要的镜像
	方式一: 到官网上面
    方式二: docker search
        
2. 拉取镜像
	docker pull python:3.7
    docker pull hello-world:nanoserver

3. 查看所有镜像
	docker images

4 删除镜像
	docker rmi/id( 如果还有基于这个镜像的内容,是不允许删除镜像的,先删除容器,在删除images)
    
    查看容器: docker ps -a
    删除容器: docker rm 容器id
    删除镜像: docker rmi 镜像id
        
5. 镜像是什么?
 	就是一堆文件, 这堆文件通过docker跑起来,就是容器
    
6(了解).docker image inspect 84c5f6e03bf0 # 查看某个镜像的所有信息

容器操作

1. 删除容器:
    docker rm 容器的名字/容器的id
    
2. 启动并运行容器
	docker -id --name:mycentos centos:centsos7
    ---通过centos:centos7镜像,创建一个容器名字叫mycentsos,并把它运行起来

3. 查看辑器上正在运行的容器
	docker ps 
    
4. 查看宿主机上所有的容器(包括停止的)
	docker ps -a
    
5. 停止容器
	docker stop 容器的名字/id

6. 启动容器
	docker start 容器的名字/id

    
7. 容器的创建和启动
		-创建:docker create --name=xxx redis
    docker create --name=test-container centos:centos7 ps -A
    -启动
    docker start test-container
    
    -容器一直运行的原因
    	-它有一条前台进程,一直在运行
        -以后如果自己制作的镜像,运行起容器,必须有个可以夯住的命令
        -如果该命令结束,该容器也就结束了
        
    -创建并启动(run)
    -i:表示运行容器
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
    --name :为创建的容器命名。如果不写,会自动分配一个名字(英文人名)
    -v:表示目录映射关系(前者是宿主机目录,后者是容器目录,映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
    docker run -it --name=myredis redis # 这个创建并启动用的是最多的
    
8. 进入容器的几种方式
	第一种: docker exec -it 容器id  /bin/bash
    第二种: ssh
 

9. 文件拷贝
	 从宿主机拷贝到容器内部
    	docker cp zc.txt 容器id:/home
        
     从容器内部拷贝到宿主机
        docker cp 容器id:/home/lqz.txt /app
            
10. 目录挂载(已经跑起来的容器不支持)
	 docker run -id --name=mycents999 -v /home/lqz:/home/ centos:centos7
目录挂载,外部文件和容器内部文件互通,一旦挂载,宿主机目录挂载,也会影响容器内部的文件


11 端口映射
	docker run -di -p 6377:6379 redis:latest
    
    # 了解:/usr/local/bin/docker-entrypoint.sh
    
12 查看容器详细信息
	docker inspect f81
    # 查看ip地址
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

总结: 
创建容器并进入窗口docker run -it --name=myredis redis
这个容器创建之后但是不会在后台运行

创建容器docker run -id --name=mycentos centos:centos7 这个是创建容器但是不进入容器的内部,并在后台运行进入容器的内部用: docker exec -it 容器的id /bin/bash

在官网上拉取镜像非常慢咋办呢

配置加速
	阿里云,清华,做了一个备份
    
    第一步: vi /etc/docker/daemon.json
    第二步: {
    "registry-mirrors": 					["https://docker.mirrors.ustc.edu.cn"]
    }

应用部署

# 在容器内部署mysql
# -e表示环境变量

docker run -di --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 官方提供的
docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
        
# 在容器内部署redis
docker run -di -p 6377:6379 redis:latest
        
# 在容器内部署nginx
docker run -di --name=mynginx -p 8080:80 nginx
原文地址:https://www.cnblogs.com/zc110/p/14640701.html