docker命令

Docker

Docker安装

1、卸载

script
1
2
3
4
5
6
7
8
9
10
11
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce

2、安装
首先需要大家虚拟机联网,安装yum工具

1
2
3
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken

然后更新本地镜像源:

1
2
3
4
5
6
7
8
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

1
yum install -y docker-ce

启动docker

1、关闭防火墙(生产环境不允许)

script
1
2
3
4
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

2、通过命令启动docker:

1
2
3
4
5
systemctl start docker  # 启动docker服务

systemctl stop docker # 停止docker服务

systemctl restart docker # 重启docker服务

3、 阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

命令

命令:
1、下载

script
1
docker pull redis 

2、加载本地tar

script
1
docker load -i redis.tar

3、保存一个或多个镜像

script
1
docker save -o name.tar redis:latest

4、启动停止镜像

script
1
2
3
4
5
6

docker images//查看镜像
docker rmi redis:latest//删除指定镜像
docker ps //查看运行的容器状态 -a可查看所有
dokcer logs -f <redis> //查看运行的容器输出的日志
docker exec -it <redis> bash //进入容器执行命令

5、单独运行一个镜像

script
1
2
3
4
5
6
docker run --name nginx -p 80:80 -d nginx //... 之后配置<nginx>的配置参数
docker start <redis> //run过的镜像
docker restart <redis>
docker stop <redis>
docker rm -f <nginx> //删掉一个运行的镜像
docker rmi -f $(docker images -qa) //删掉所有没有运行的镜像
  • –name:容器起一个名字
  • -p:容器与宿主机端口映射
  • -d:吼他运行
  • nginx:镜像的名字

6、操作数据卷,将容器与数据分离,方便操作容器内数据

script
1
2
3
4
5
docker volume create <html> //创建数据卷
docker volume ls//查看数据卷
docker volume rm <html>//删除数据卷
docker volume inspect <es-data>//查询数据卷的位置
docker volume prune//删除没有使用的数据卷

7、挂载数据卷,容器的数据映射到docker的数据卷,不读取容器的目录数据了

script
1
docker run --name <mn> -p 80:80 -v html:/usr/share/nginx/html -d nginx //可以直接创建数据卷html,不需要docker volume create <name>

8、挂载文件 mysql

script
1
2
3
4
5
6
mkdir -p mysql/data //创建多级目录
mkdir -p mysql/conf //配置文件scp到该目录
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root1234 -p 3306:3306 \
-v /usr/tmp/mysql/data:/var/lib/mysql \
-v /usr/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-d mysql:5.7.25

9、根据Dockerfile创建一个镜像

script
1
2
docker build -t <javaweb:1.0> . //创建
docker run --name <javaweb> -p 8090:8090 -d javaweb:1.0 //

10、抽取分层容器

1
2
3
4
5
6
7
8
# 指定基础镜像
FROM java:8-alpine

COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

DockerCompose微服务部署

script
1
2
3
4

docker-compose down//删除刚才运行的项目

docker-compose up -d --force-recreate --build//重新构建
创建network
1
docker network create 'name'