1. 安装docker
https://www.runoob.com/docker/centos-docker-install.html
1) 设置yum源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install epel-release
2) 安装docker
[root@localhost ~]# yum -y install docker
3) 修改docker配置
vi /etc/sysconfig/docker
#OPTIONS=’–selinux-enabled --log-driver=journald --signature-verification=false’
#if [ -z “${DOCKER_CERT_PATH}” ]; then
#DOCKER_CERT_PATH=/etc/docker
#fi
OPTIONS=’–insecure-registry={centosIP}:5000’
2. 启动docker
systemctl start docker //启动docker
systemctl enable docker // docker加入开机启动
启动后,可以用“docker version” 查看docker 信息
3. 用registry搭建私有镜像仓库
1) 下载registry镜像
查看镜下是否pull下来了
docker images
2) 运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
测试镜像仓库中所有的镜像
[root@localhost ~]# curl http://127.0.0.1:5000/v2/_catalog
{“repositories”:[]}
现在是空的,因为才刚运行,里面没有任何镜像内容。
3) 修改镜像源
vim /etc/docker/daemon.json
{
“registry-mirrors”: [ “https://registry.docker-cn.com”]
}
重启docker:
systemctl restart docker
4)下载tomcat镜像
docker pull tomcat:7.0.70-jre7-alpine
a. 查看tomcat:
b. 为tomcat镜像打tag
docker tag tomcat:7.0.70-jre7-alpine {centosIP}:5000/tomcat:v1
tomcat:7.0.70-jre7-alpine 这是源镜像,也是刚才pull下来的镜像文件;
{centosIP}:5000/tomcat:v11:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;
c. 上传到镜像服务器
docker push {centosIP}:5000/tomcat:v1
4. 一些docker相关操作详解(docker build, docker tag, docker push, docker run)
a. docker build -t devops_test-tomcat:v$num .
docker build 命令用于使用 Dockerfile 创建镜像, 使用当前目录的dockerfile创建镜像。
–tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
b. docker tag devops_test-tomcat: v{num} {centosIP}:5000/devops_test-tomcat:vnum将镜像devopstest−tomcat:vnum
将镜像devops_test-tomcat:vnum将镜像devopstest−tomcat:vnum标记为 {centosIP}:5000/devops_test-tomcat:v$num 镜像。
docker tag : 标记本地镜像,将其归入某一仓库。
c. docker push {centosIP}:5000/devops_test-tomcat:v$num
docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
d. docker run -d -p 8080:8080 devops_test-tomcat:v$num
docker run :创建一个新的容器并运行一个命令
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
e. 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -it nginx:latest /bin/bash
5. 常用的Docker命令
https://www.runoob.com/docker/docker-hello-world.html
查看启动的容器
docker ps
启动容器(后台模式)
docker run -d ubuntu
启动容器(交互式)
docker run -i -t ubuntu
docker run -p xxx:xxx 镜像名
启动已停止的容器:
a. 查看所有的容器
docker ps -a
b. 启动已停止的容器
docker start $containerid
docker start d9c4e1a4f238
停止容器
docker stop $containerId
重启容器
docker restart $containerid
删除容器
docker rm -f containername/container_name/containername/containerid
进入容器
docker attach $containerid
docker exec -it $containerid /bin/bash (推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。)
or
docker exec -it $containerid /bin/bash
https://blog.youkuaiyun.com/u010397369/article/details/41045251
寻找网络镜像
docker search centos
下载镜像
docker pull jenkins
push本地镜像到镜像仓库
docker push
#查看所有本地镜像
docker images
#删除本地镜像
docker rmi $image_id
Issues:
- start docker failed:
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 六 2019-05-11 16:07:38 CST; 18s ago
Docs: http://docs.docker.com
Process: 9857 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
Main PID: 9857 (code=exited, status=1/FAILURE)
5月 11 16:07:38 192.168.1.200 systemd[1]: Starting Docker Application Container Engine…
5月 11 16:07:38 192.168.1.200 dockerd-current[9857]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character ‘â’ looking for beginning of…ct key string
5月 11 16:07:38 192.168.1.200 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
5月 11 16:07:38 192.168.1.200 systemd[1]: Failed to start Docker Application Container Engine.
5月 11 16:07:38 192.168.1.200 systemd[1]: Unit docker.service entered failed state.
5月 11 16:07:38 192.168.1.200 systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
https://blog.youkuaiyun.com/KissedBySnow/article/details/90137289
新方法安装新版本:
a. 添加阿里镜像
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
b. 查看可以安装的docker版本
yum list docker-ce --showduplicates
c. 安装18.03.1
sudo yum install docker-ce-18.03.1.ce