docker 安装常用环境

什么是容器

作为稍懂服务器的人都知道服务器是有系统的,一般来说是linux系统,我们可以在里边操作各种,比如说安装nginx、部署服务、数据库等。简单来说,容器理解成一个超精简的linux系统,可以进入这个系统进行安装各种服务,我们从网上pull下来的快照(image)就相当于 一个精简的linux系统,里边安装了需要的服务,如 nginx的快照相当于精简linux里安装了个nginx。下载下来的快照(image)启动后生成容器,我们进入容器,依然可以对容器内的东西指手画脚。

下边的内容主要将 完整的功能放在了 “ 安装linux(完整)” 里,其他的都是精简可用,不做过多重复

一、 安装linux(完整)

目前为止docker hub 还是被封着,用阿里云、腾讯云镜像找一找版本直接查就行
默认使用latest最新版

 #:latest 可以不写。
docker pull centos:latest 
# 拉取后查看 images
docker images
#给镜像设置标签
# docker tag [images的IMAGE_ID列的值] [名字:版本]
# 例如:
 docker tag 5d0da3dc9764 mycentos:V1


# 删除image 
#docker rmi [IMAGE_ID的值或者 名字:版本]
#例如
docker rmi 5d0da3dc9764 

docker 启动镜像

# -i 交互
# -t 终端
# -d 可后台运行
# --name 生成container 的名字
# docker run -itd --name="[自定义名字]"  [image的id 或者镜像名字:版本号]
# 例如
docker run -itd --name="testMyCentos"  mycentos:V1
# 查看启动的程序
docker ps
# 查看所有程序
docker ps -a

#启动的老三样 start  restart stop 
# docker start [container的id或者name] 这里的id就不是image的id了,不是同一个东西喔
# 例如
docker start 6d6981426274

#移除container
#docker rm   [container的id或者name]
#例如
docker rm 6d6981426274

在这里插入图片描述

进入镜像中

docker attach
# exec 的时候退出不会停止container 但attach会
docker exec
#进入后就是一个正常的系统啦
#  exec需要参数 例如
 docker exec -it d82b7255ba57 /bin/bash

在这里插入图片描述

查看ip、ping、以及保存新镜像

# 查看ip
# 进容器先更新apt
apt-get update
# 加载net网络
apt install net-tools
# 加载 ping
apt-get install inetutils-ping
# 如上,我们在容器中加入了一些新的东西,为了方便后续使用,可以保存新的image
# 这样我们使用自己保存的image 生成的容器就会自带 net网络和 ping,当然加入其他属性也是一样的
# 退出容器
exit
 # 复制镜像
#docker commit -m= "描述信息" -a="作者" [要复制的容器的IMAGE_ID列的值] [名字:版本]
# 例如
docker commit -m="test" -a="vace" 5d0da3dc9764 vace/centos:v1
# 查看image

在这里插入图片描述

查看网络端口号、进程、底层信息、日志

#查看网络端口号
docker port 6d6981426274
# 查看docker 的进程
docker top 6d6981426274
#查看docker 的底层信息
docker inspect 6d6981426274
# 日志查看
docker logs -f 6d6981426274

容器的导入和导出

#导出容器
# docker export [容器的id] > ubuntu.tar
#例如
docker export d82b7255ba57 > mysql.tar
# 导入容器
# cat [当前目录下直接地址或者根目录地址] | docker import - [名字:版本]
cat mysql.tar | docker import - test/mysql:v1
# 或使用 远程地址
docker import http://localhost/repo/docker/mysql.tar test/mysql:v1

在这里插入图片描述

二、 安装ubuntu(精简)

# 拉image
docker pull ubuntu:latest
# 查询
docker images
# 运行
docker run -itd --name myUbuntu ubuntu
#查容器
docker ps

三、 安装nginx (精简)

docker pull nginx:latest
docker images
# -d 可后台运行
# -p 指定物理机端口号和容器端口号进行绑定 -P不指定端口号(默认)
docker run --name myNginx -p 8080:80 -d nginx

在这里插入图片描述

配置nginx

方案一: 将nginx容器里的config文件复制出来,编辑后再放进去

docker cp accfb55471fd:/etc/nginx/nginx.conf nginx.conf
# 编辑完成将文件放回去
docker cp nginx.conf accfb55471fd:/etc/nginx/nginx.conf 
# 重启nginx

在这里插入图片描述

方案二: nginx容器中安装 vim

# 进容器先更新apt
apt-get update
# 安装 vim
apt install vim
# 接下来 就可以正常编辑 config文件啦
vim -v /etc/nginx/nginx.conf
# 重启nginx

方案三:使用 Dockerfile 重构容器
在这里插入图片描述

关于nginx.config
在这里可以直接用 虚拟ip ,也可以用桥接网络的容器名(需要单独设置网络喔)
详情看 “五. 网络连接”

四. 安装mysql

docker pull mysql:8.0.19
docker images
docker run -itd --name myMysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

进入容器添加用户权限

# 进入容器
# docker exec -it [容器id] /bin/bash
#  exec需要参数 例如
 docker exec -it d82b7255ba57 /bin/bash
#输入密码 MYSQL_ROOT_PASSWORD的值,这里是 123456
mysql -uroot -p
#进入mysql 创建用户,外网可访问
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
show grants for 'user'@'%';
FLUSH PRIVILEGES;
# 退mysql
exit;
# 退容器
exit;

在这里插入图片描述

五. 网络连接

创建网络连接可以允许容器间的互相通信

docker network create -d bridge myNetwork

# 创建network 连接
# 方法一
docker network connect myNetwork myMysql
docker network connect myNetwork myNginx
#重新启动容器
docker restart myMysql
docker restart myNginx

# 方法二 在创建容器的时候直接添加网络 --network
#docker run -itd --name myMysql --network myNetwork -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
#docker run --name myNginx -p 8080:80 -d nginx

调试

进入其中一个容器
 docker exec -it d82b7255ba57 /bin/bash
apt-get update
apt-get install inetutils-ping
ping myNginx

在这里插入图片描述
在这里插入图片描述
查看网络

# 查看所有网络
docker network ls
# 创建容器时默认会将容器添加进bridge 的网络中, ping ip的时候是可以ping通的
#  查看网络明细
docker network inspect 900b057a1f53
# 其中的"Containers"中的内容就代表了当前网络下的所有容器地址

在这里插入图片描述

在这里插入图片描述

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vace cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值