初识docker

初识docker

1. 安装docker

 sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce                     

查看docker版本
docker -v

2. 启动docker

 systemctl start docker
 systemctl status docker
 systemctl restart docker
 systemctl stop docker

启动docker之前,最好将防火墙关闭,为后期访问docker中部署的服务做准备
sudo ufw disable
sudo ufw status

3. 配置镜像加速器

## 为后期快速下载docker镜像做准备,以阿里云镜像站举例
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mlbe5lel.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

阿里云配置详情

4.docker基本操作

镜像操作

镜像的命名

  • 镜像名称一般分两部分组成:[repository]:[tag]。例:MySQL:5.7
  • 在没有指定tag时,默认是Latest,代表最新版本的镜像

镜像操作命令

docker images  #查看镜像
docker rmi   #删除镜像
docker pull  #拉取镜像,从镜像服务器或者私服
docker push  #推送镜像到镜像服务器
docker bvild #使用本地文件去构建镜像
docker save  #保存镜像为一个压缩包
docker load  #加载压缩包为镜像

命令举例

docker pull nginx   #拉取Nginx镜像
docker images  #查看镜像拉取是否成功
docker save -o nginx.tar nginx:latest
# 将Nginx镜像保存成压缩包 Nginx.tar
docker rmi nginx:latest
#将拉取的Nginx镜像删除
docker load -i nginx.tar
# 加载Nginx.tar的镜像

容器操作

docker run #创建容器(运行状态)
docker start #运行容器
docker stop #停止容器
docker pause #暂停容器
docker unpause #恢复暂停的容器
docker Logs #查看容器运行日志
docker ps  #查看所有运行的容器及状态
docker ps -a #可以查看没有运行的容器状态
docker exec #进入容器执行命令
docker rm #删除指定容器
docker rm -f #强制删除指定容器

docker logs -f container1
添加-f参数可以持续查看日志

命令举例

  1. 创建运行一个Nginx容器
docker run --name container1 -p 80:80 -d nginx

命令解读:

  • docker run:创建并运行一个容器
  • -name:给容器起一个名字,比如叫做container1
  • -p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx
  • 创建容器之后,生成容器的ID,显示出来
  1. 进入Nginx容器,修改HTML文件内容。
docker exec -it container1 bash

命令解读:

  • docker exec:进入容器内部,执行一个命令
  • -it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • container1:要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个inux终端交互命令
    修改文件内容
cd /usr/share/nginx/html/
apt-get update
apt-get install vim -y 
或者
sed -i -e 's#Welcome to nginx#初识docker#g' -e 's###g' index.html

exit 可以退出容器

exc命令可以进入容器修改文件,但是在容器内修改文件是不推荐的

数据卷(容器数据管理)

  1. 数据卷操作的基本语法
docker volume create 创建一个volume
docker volume inspect 显示一个或多个volume的信息
docker volume prune  删除未使用的volume
docker volume ls 列出所有的volume
docker volume rm 删除一个或多个指定的volume

操作举例

docker volume create trick
创建数据卷
docker volume ls
查看所有数据卷
docker volume inspect trick
查看数据卷详细信息
  1. 数据卷挂载
  • 基本语法
-v html::root/htm:把html数据卷挂载到容器内的/root/html这个目录中
  • 操作举例

    新创建一个容器,将html数据卷挂载到/usr/share/nginx/html目录中
docker run --name trick -p 80:80 -v html:/usr/share/nginx/html -d nginx

如果没有创建html数据卷,使用上述命令也是可以的,docker会自动创建数据卷
/usr/share/nginx/html 是Nginx镜像中的HTML所在目录

可以在https://hub-stage.docker.com/_/nginx 查到
然后,通过docker volume inspect html 目录查看数据卷的挂载点。

初识docker_第1张图片

就可以进入这个目录,去修改index.html文件(实现了没有进入容器去修改容器里面的文件)

  • 将宿主机的目录或文件挂载到容器
-V [宿主机目录][容器内目录]
-V「宿主机文件][容器内文件]

案例:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

  • 1.拉取MySQL的镜像
  • 2.创建目录/tmp/mygl/data
  • 3.创建目录/tmp/myql/conf,将准备的MySQL配置文件hmy.cnf文件使用远程工具上到/tmp/mygl/conf
  • 4.去DockerHub查阅资料,创建并运行MySQL容器,要求:
    • 挂载/tmp/myql/data到mysql容器内数据存储目录
    • 挂载/tmp/myql/conf/hmy.cnf到mysql容器的配置文件
    • 设置MySQL密码
docker pull mysql

mkdir -p /tmp/mysql/data
mkdir -p /tmp/mysql/conf

docker run --name mysql -e MYSQL_ROOT_PASSWORD=密码 -p 3306:3306 -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf -v /tmp/mysql/data/:/var/lib/mysql -d mysql

## -e : 环境变量

测试

初识docker_第2张图片

连接成功

你可能感兴趣的:(Linux,docker,容器,运维,linux,centos)