Docker Study

Centos下Docker学习

Centos 7安装和卸载Docker CE开源社区版

1
2
3
4
5
6
7
8
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 curl       #安装设置镜像仓库所需包
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置stable镜像仓库
sudo yum list docker-ce.x86_64 --showduplicates | sort -r #列出软件可用的版本,可根据版本安装
sudo yum -y install docker-ce #安装最新版
sudo docker --version #查看docker版本
sudo docker run hello-world #验证是否安装成功
sudo yum remove docker-ce #卸载docker-ce
sudo rm -rf /var/lib/docker #删除所有镜像、容器和存储卷

配置加速器

第一种:

1
2
3
4
5
6
7
8
9
10
11
sudo mkdir -p /etc/docker
sudo cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors" : [
"https://i3jtbyvy.mirror.aliyuncs.com" #加速器地址还可为:https://registry.docker-cn.com
],
"debug" : true,
"experimental" : true
}
EOF
sudo systemctl restart docker

第二种:

1
2
3
sudo systemctl enable docker            #启用docker服务
sudo vi /etc/systemd/system/multi-user.target.wants/docker.service #编辑,找到ExecStart=这一行,改为下一行所示的内容
ExecStart=/usr/bin/dockerd --registry-mirror=https://i3jtbyvy.mirror.aliyuncs.com

Docker安装websphere

1
2
3
4
5
6
7
8
9
10
11
12
sudo docker login                                 #登录Docker Cloud,需输入用户名和密码 
sudo docker search websphere #查看与websphere相关的镜像
sudo docker pull ibmcom/websphere-traditional #下载镜像到本地
sudo docker images #查看本地镜像,不同的仓库它的镜像ID可以相同
sudo docker run --name websphere \ #通过镜像来运行一个名为websphere的容器,可指定端口映射,容器名等
-h websphere \
-e UPDATE_HOSTNAME=true \
-p 9043:9043 \
-p 9443:9443 \
-d ibmcom/websphere-traditional
sudo docker exec websphere cat /tmp/PASSWORD #进入容器内部输出websphere的登录密码,用户名为wsadmin
sudo docker ps #查看容器有没有在运行,访问http://localhost:9043/ibm/cosole来登录控制台

Docker常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sudo docker ps -a                             #查看所有容器
sudo docker ps #查看在运行的容器
sudo docker stop 容器名/容器ID #停止一个运行中的容器,发出一个停止信号,等待容器停止
sudo docker kill 容器名/容器ID #直接杀死容器
sudo docker start 容器名/容器ID #运行一个容器
sudo docker rm 容器名/容器ID #删除一个容器
sudo docker rmi 仓库名:标签/镜像ID #删除一个镜像,基于此镜像运行的容器必须删除,同名需指定版本,即镜像名:版本
sudo docker rmi $(docker images -q) #删除所有镜像
sudo docker tag hello-world subcan/get-started:test #发布过程为先标记一个镜像,标记的仓库为自己docker hub上想存放镜像的仓库
sudo docker push subcan/get-started:test #发布镜像到Docker Cloud仓库
sudo docker login #登录Docker Cloud仓库
sudo docker pull subcan/get-started:FirstBuildImages #登录Docker Cloud后,可pull一个自己镜像仓库的的镜像到本地
sudo docker logout #退出登录
sudo docker inspect 容器名/容器ID #对容器进行详细的检查,返回配置信息
sudo docker inspect 镜像ID/仓库ID:标签 #查看镜像的详细信息
sudo docker run learn/tutorial apt-get install -y ping #运行一个容器并在容器中安装ping
sudo docker commit 容器名/容器ID 镜像名 #把一个容器做成镜像
sudo docker log [-f][-t] 镜像 #查看容器的日志
sudo docker top 容器名/容器ID #查看容器的进程
sudo docker exec 容器名 命令 #对运行中的容器启动一个新的进程
sudo man docker-run #使用Docker帮助文件。其他命令也可查看
sudo docker port 容器名/容器ID #查看容器端口映射的情况
sudo docker info #查看docker信息
sudo docker version #查看docker版
sudo docker images --no-trunc #可查看镜像完整的ID
sudo docker images -a #查看所有的镜像,其中为<none>的镜像表示中间层镜像
sudo docker images -q #只查看镜像ID
sudo docker images 仓库名字 #查看指定的镜像

docker run命令

1
2
docker run [参数] 
参数:-d 以守护式进程的方式运行容器

守护式容器

例:

1
2
3
docker run -i -t --name test1 ubuntu /bin/bash                       #进入交互式容器环境
Ctrl+P Ctrl+Q #退出交互式环境,不影响容器运行,如果输入exit退出,则容器停止运行
docker attach 容器名/容器ID #进入运行的容器中

docker 概念 仓库,仓库:标签
Dockerfile构建镜像
进入Dockerfile文件目录,执行命令,执行成功,即构建了一个镜像
docker build -t=”仓库名” .
docker build -t=”仓库名” –no-cache. #不使用镜像缓存

docker c/s模式的连接方式
unix:///var/run/docker.sock #默认使用它,可以nc来连接,如:nc -u /var/run/docker.sock
tcp://host:port
fd://socketfd

docker 远程访问
不同的机器,修改docker守护进程启动项(labels标签),区别服务器,保证client api 与server api版本一致,-H选项配置启动选项,客户端可通过export Docker_HOST=”服务端访问方式”,来访问服务端docker info,为空表示访问本地的docker

可自定义修改linux虚拟网桥docker0的ip地址和掩码,docker运行的容器通过网桥docker0来通信,每运行一个容器,docker0会自动分配一个ip和mac地址给容器
ifconfig docker0 192.168.200.1 netmask 255.255.255.0

yum install bridge-utils -y
brctl show #查看网桥

brctl addbr br0 #添加一个虚拟网桥
ifconfig br0 192.168.100.1 netmask 255.255.255.0
守护进程启动配置中添加DOCKER_OPS值 -b=br0,则可以将自定义的虚拟网桥添加给docker使用

容器与外部网络连接
sysctl net.ipv4.conf.all.forwarding 查看net.ipv4.conf.all.forwarding,默认开启,值等于1

More info: Deployment

推荐文章