Docker

docker

Docker安装与启动

1.安装可能需要的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

2.更换yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker
yum install docker-ce -y

4.查看docker版本
docker -v

5.启动docker
systemctl start docker

6.关闭docker
systemctl stop docker

7.设置开机自启
systemctl enable docker

8.查看docker信息
docker info

镜像加速

vim /ect/docker/daemon.json
{
    "registry-mirrors":
    ["https://x1566319.mirror.aliyuncs.com"]
}

镜像相关命令

运程仓库下载  官方的 https://hub.docker.com/


1.镜像下载
docker pull 镜像名字:版本/tag
	docker pull centos:centos7
    docker pull  redis  # 不跟版本/tag 默认下最新的latest
    
2.查找镜像
	(1) 官网搜索 https://hub.docker.com/
	(2) docker search centos
    
3.查看本地镜像
	docker images
    
4.镜像删除
	docker rmi 镜像名字:tag/镜像id
    
5.一次性删除所有镜像
	docker rmi `docker images -q`
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

容器相关命令

1. 查看正在运行的容器
	docker ps
    
2. 查看所有容器,无论停止还是运行
	docker ps -a
    
3. 创建容器并启动(创建容器,运行容器)
	docker run -id --name='容器名字' -v 宿主机路径:容器路径 -p 宿主机端口:容器端口 镜像名字:tag
    -i: 表示运行容器 镜像名字:tag
    -t: 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    -d: 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
    --name: 为创建的容器命名。
    -v: 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    -p: 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
    
 ### docker run -it centos:centos7
	-启动容器,自动命名,进入到容器内部,如果exit退出,容器也就结束了,不运行了
    -因为容器运行必须有一个前台进程夯住阻塞,前台进程结束,容器也就结束了
### docker run -id --name=mycentos7 centos:centos7
	-进入到容器内部操作
    	-ssh连过去(需要容器支持,安装ssh,启动,监听22端口),一般不用
        -docker exec -it 96a5 /bin/bash # 本质是在96a5容器上执行一下 bash命令
### docker run -id --name=mycentos2 -v /root/lqz:/home/lqz centos:centos7
	-以后再容器内部操作lqz文件夹和在宿主机操作是一样的
    
### docker run -id --name=myredis -p 6380:6379 redis
	-以后直接链接宿主机的6380就相当于链接容器的6379端口
    
    
#### mysql做目录映射,创建数据库,删除容器操作,再用别的容器运行,数据库还在
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
 
# 创建my.cnf配置文件
touch /home/mysql/my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000



docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

#3 停止容器
docker stop 容器id
# 启动容器
docker start 容器id
#4 删除容器:必须先停止再删
docker rm 容器id 容器id 容器id

#5 文件拷贝
# 从宿主机copy文件到容器
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp lqz.txt ff78cece7d61:/home

#从容器copy文件到宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp ff78cece7d61:/home/lqz.txt /root/lqz.txt

#6 查看容器详情,ip地址
docker inspect ff78cece7d61
docker inspect --format='{{.NetworkSettings.IPAddress}}' ff78cece7d61


# netstat 命令没有
yum install net-tools 安装

应用部署

# 运行mysql
docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7


# 运行redis
docker run -di --name=myredis5 -v /root/lqz/redis.conf:/data/redis.conf   -p 6379:6379 redis redis-server /data/redis.conf

vim redis.conf
bind 0.0.0.0
daemonize no
protected-mode no
requirepass 123456

# 运行nginx
docker run -di --name=mynginx -p 80:80 nginx
posted @ 2022-08-15 16:29  春游去动物园  阅读(21)  评论(0编辑  收藏  举报