systemctl start docker
systemctl restart docker
docker --help
docker version
docker info
docker command --help
docker images
docker images -a
docker images -q
docker images -aq
docker search
docker search mysql
docker search mysql --filter=STARS=3000
docker pull
docker pull --help
docker pull mysql
docker pull mysql:5.7
docker rmi -f ID
docker rmi -f ID1 ID2 ID3
docker rmi -f $(docker imags -aq)
docker run --help
docker run image1
docker run -d centos ^ backend start, stop without frontend
Example
docker pull centos
docker run -it centos /bin/bash ^enter container
exit ^exit container
Ctrl+P+Q ^container on exit
docker ps ^list all the container
docker ps -a
docker rm containerid ^remove container
docker rm -f $(docker ps -aq) ^remove all container
docker ps -a -q | xargs docker rm
docker start containerid ^start container
docker restart containerid ^restart container
docker stop containerid ^stop container
docker kill containerid ^kill container
docker logs --help
docker top --help ^check container process info
docker top containerid
docker inspect --help ^check container data
docker inspect containerid
docker exec -it containerid /bin/bash ^enter container
docker attach containerid ^enter container
docker cp containerid:/home/test.java /home ^cp container file to host,local
!deploy nginx
docker search nginx
docker pull nginx
docker images
docker run -d --name nginx01 -p 3344:80 nginx
docker ps
curl localhost:3344
!deploy tomcat
#docker run -it --rm tomcat:9.0 ^test only, delete immediately after use
docker pull tomcat
docker images
docker run -d -p 3355:8080 --name tomcat01 comcat ^minimum tomcat, can’t be right
cd webapps.dist
cp -r webapps.dist/* webapps ^copy file to webapps
!deploy es + kibana
#hub.docker.com search: elasticsearch check how to run
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:7.6.2
curl localhost:9200
docker stats
docker stop 7e2469973535 ^es id
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -e ES_JAVA_OPTS=“-Xms64m -Xmx512” elasticsearch:7.6.2ii
!visual GUI
portainer
Rancher ^for CI/CD
UnionFS layer
docker pull redis
docker commit --help
docker commit -a=“author” -m=“add webapps appliacation” containerid to tomcat_jack:1.0
socker images
CONTAINER DATA VOLUME
docker run -it -v hostDirectry:countainerDirectry -p
docker run -it -v /home/test:/home centos /bin/bash
docker inspect coutainerid
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/varlib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
sqlyog #connect to 3310, mapping to 3306
#named mount -v containerDirectory
&anonymous mount -v volumename:containerDirectory
&specified path mount -v /hostDirectory::containerDirectory
docker run -d -p --name nginx02 -v named-nginx:/etc/nginx nginx
docker volume inspect named-nginx ^check named mount
docker volume --help
docker volume ls
DOCKERFILE
touch dockerfile1
FROM centos
VOLUME [“volume01”,“volume02”]
CMD echo “-------end------”
CMD /bin/bash
docker build -f dockerfile1 -t jack/centos .
docker images
docker run
docker push #to dockerhub, aliyun
many mysql date sharing,keep synchronization
#dockerfile command
FROM centos scratch
ARINAINER jack 1@qq.com
RUN
ADD tomcat
WORKDIR
VOLUME
EXPOSE
RUN
CMD
ENTRYPOINT
ONBUILD
COPY
ENV
test
touch mydockerfile
FROM centos
MAINTAINER jakc23@q.com
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo “—ebd—”
CMD /bin/bash
docker build -f mydockerfile-centos -t mycentos:0.1 .
docker images
docker run -it mycentos:0.1
docker history
docker history containerid
touch mydockerfile2
FROM centos
CMD [“ls”,“-a”] ENTRYPOINT [“ls”,“-a”]
docker build -f mydockerfile2 -t cmdtest .
docker run mydockerfile2id
docker run mydockerfile2id -l
#build tomcat image
#download tomcat.tar.gz jdk.tar.gz
touch readme.txt
vim Dockerfile
FROM centos
MAINTAINER jack123@qq.com
COPY readme.txt /usr/local/readme.txt
ADD jdk.tar.gz /usr/local
ADD tomcat.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22
ENV PATH
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
C
A
T
A
L
I
N
A
H
O
M
E
/
l
i
b
:
CATALINA_HOME/lib:
CATALINAHOME/lib:CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.22/bin/logs/catalina.out
docker build -t jacktomcat
docker images
docker run id
curl localhost:9090
deploy complete!
PUBLISH PUSH IMAGES TO DOCKER HUB , ALIYUN
#regist hub.docker.com and login
docker login --help
docker login -u jack
Password:
docker images
docker push jacktomcat:1.0
docker tag jacktomcatid kuangshen/tomcat:1.0
docker push kuangshen/tomcat:1.0
#login aliyun
docker login --username=************** registry.cn-beijing.aliyuncs.com
Password:
docker tag *******************
docker images
docker push id
docker save --help
docker load --help
DOCKERNETWORK
#docker 0
ip addr
docker run -d -P --name tomcat01 tomcat
docker exec -it tomcat01 ip addr
ping 172.****
ip addr
–link
docker exec -it tomcat01 ping tomcat02
docker run -d -P --name tomcat02 --link tomcat01 tomcat
docker exec -it tomcat01 ping tomcat02 ^connect
docker exec -it tomcat02 ping tomcat 01 ^no connect
docker network --help
docker network ls
docker network rm name
docker run -d -p --name tamcat01 --net bridge tomcat
docker network creat --help
docker network creat --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
docker network ls
docker network inspect mynet
docker run -d -P --name tomcat-net-01 --net mynet tomcat
docker run -d -P --name tomcat-net-02 --net mynet tomcat
docker network inspect
docker exec -it tomcat01 ping tomcat02 ^connect
NETWORK CONNECT UNICOM
docker network connect --help
docker network connect mynet comcat01
docker exec -it tomcat01 ping tomcat-net-01 ^connect
DOCKERCOMPOSE
#deploy redis cluster grou
docker network create redis --subnet 172.38.0.0/16
docker network ls
docker network inspect redis
--------- ^shell script
for port in
(
s
e
q
16
)
;
d
o
m
k
d
i
r
−
p
/
m
y
d
a
t
a
/
r
e
d
i
s
/
n
o
d
e
−
(seq 1 6); \ do \ mkdir -p /mydata/redis/node-
(seq16); do mkdir−p/mydata/redis/node−{port}/conf
touch /mydata/redis/node-
p
o
r
t
/
c
o
n
f
r
e
d
i
s
.
c
o
n
f
c
a
t
<
<
E
O
F
>
/
m
y
d
a
t
a
/
r
e
d
i
s
/
n
o
d
e
−
{port}/confredis.conf cat <<EOF >/mydata/redis/node-
port/confredis.confcat<<EOF>/mydata/redis/node−{port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
cd /mydata/
ls
cd redis/
ls