1 yum包更新到最新
sudo yum update
2 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3 设置阿里云镜像
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安装docker
sudo yum install docker-ce
5 设置ustc镜像加速器
[root@VM_0_2_centos ~]# cd /etc
[root@VM_0_2_centos etc]# mkdir docker
[root@VM_0_2_centos etc]# cd docker
[root@VM_0_2_centos docker]# vi daemon.json
添加如下加速器配置
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
6 docker 启动与停止
systemctl start docker 启动
systemctl status docker 查看状态
systemctl stop docker 停止
systemctl restart docker 重启
systemctl enable docker 开机启动
docker info 查看docker概要信息
docker --help
7 镜像命令
查看镜像 docker images
搜索镜像 docker search centos
拉取镜像 docker pull 镜像名称
删除镜像 docker rmi 镜像ID
删除所有镜像 docker rmidocker images -q
8 容器命令
查看容器 docker ps
查看所有的容器,包括已经停止的 docker ps -a
创建容器 docker run
交互式创建容器 docker run -it --name=mycentaos centos:7 /bin/bash
退出容器 exit
守护式方式创建容器 docker run -di --name=mycentos2 centos:7
进入容器 docker exec -it mycentos2 /bin/bash
交互式退出容器后,停止运行,守护式退出容器后,还会一直运行
停止容器 docker stop mycentos2(或者ID)
启动容器 docker start mycentos2(或者ID)
容器拷贝 docker cp 需要拷贝到文件或目录 容器名称:容器目录
示例
- docker 部署mysql
1 搜索镜像
docker search mysql
2 拉取
docker pull centos/mysql-57-centos7
3 创建容器 映射到宿主33306端口
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
- docker 部署tomcat
docker pull tomcat
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
部署 将war包放到/usr/local/webapps
浏览器打开192.168...:9000/a.war
- docker部署nginx
docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx
部署 docker exec -it mynginx /bin/bash
进入docker - nginx
docker exec -it mynginx /bin/bash
退出 docker
exit
cd etc
cd nginx
cat nginx.conf
cd conf.d
root /usr/share/nginx/html;
将打包后html文件放到/usr/share/nginx
docker cp html mynginx:/usr/share/nginx/
- docker部署redis
docker pull redis
docker run -di --name=myredis -p 6379:6379 redis
9 docker备份迁移
- 将容器保存为镜像
docker commit mynginx mynginx_i - 备份
导出 docker save -o mynginx.tar mynginx_i
停止容器 docker stop mynginx2
删除容器 docker rm mynginx2
删除镜像 docker rmi mynginx_i
导入 docker load -i mynginx.tar
10 Dockfile
- 创建Dockerfile文件
FROM centos:7
MAINTAINER wenjun
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/bin/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
- 构建镜像
docker build -t='jdk1.8' .
11 docker私有镜像
docker pull registry
docker run -di --name=myregistry -p 5000:5000 registry
添加信任
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["49.233.211.138:5000"]
}
重启 systemctl restart docker
打标签 docker tag jdk1.8 49.233.211.138:5000/jdk1.8
上传镜像 docker push 49.233.211.138:5000/jdk1.8
持续集成与容器管理
- maven插件自动部署
修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
ExecStart=后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock
刷新配置,重启服务
systemctl daemon‐reload
systemctl restart docker
docker start myregistry
网友评论